問題タブ [squeryl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - Squeryl0.9.6のKeyedEntity
Squerylのバージョン0.9.6では、 typeclassを使用して、KeyedEntityDef
主キーが関連付けられているクラスを宣言する新しい方法が導入されています。まだ古い宣言方法
サポートされています。
Squeryl 0.9.5を使用する既存のアプリケーションを新しいバージョンに移行して、カスタムプリミティブ型を使用しようとしていますが、コンパイルの問題が発生しています。これは、コンパイルされなくなったトレイトの例です。
これは、次のように使用することを目的としていました。
さて、コンパイルしようとすると、メッセージが表示されます
このメソッドには、スコープ内に暗黙のorg.squeryl.KeyedEntityDef [A、Long]が必要であるか、トレイトKeyedEntity[{K}]を拡張する必要があります。
A
拡張しますがKeyedEntity[Long]
。のような暗黙のスコープを追加することさえ
暗黙の解決には役立ちません。また、トレイトはコンパイルに失敗します。
コンパイラがルックアップメソッドで暗黙的にフィードしない理由を誰かが知っていますか?
scala - Squeryl で挿入しようとすると ClassCastException が発生する
これは、Squeryl の仕組みについての私の誤解が原因である可能性があります。私のエンティティは次のように定義されています。
私のテーブル変数は次のように定義されています:
次に、ウォレットにお金を追加しようとするメソッドを呼び出しています。
update を呼び出す行で、例外がスローされます: [ClassCastException: java.lang.Integer cannot be cast to org.squeryl.dsl.CompositeKey]
私は複合キーをまったく使用していないので、これは非常に紛らわしいです。私のidフィールドが「id」ではなく「userid」と呼ばれているという事実と関係がありますか?
scala - Squeryl 0.9.5 から 0.9.6 への移行
新しい拡張フィールド タイプを利用するために、既存のアプリケーションを SQueryl 0.9.5 から 0.9.6 に移行しようとしています。アプリケーションとそのテストがコンパイルされるところまで来ましたが、Schema
.
かなり長いスタック トレースの一部には、次のものが含まれます。
ソースを見ると、例外はFieldMapper.lookup
メソッドの失敗、つまり次の行に起因しているようです
私が理解している限り、クラスのマッピングはregister
メソッドを介してロードされ、特にネイティブ型の場合、次の行があります
個人用の拡張プリミティブ型をこのレジストリにロードして、それらが正しく使用されるようにする方法がわかりません。
拡張プリミティブ型を有効にするメカニズムを知っている人はいますか?
編集:
これが私のモデルです - 「公式」の例のように見えますが、Joda 時間を直接使用しているのではなく、その周りに薄いラッパーが呼び出されているという事実を除けばDateTime
import - Squeryl: 見つからないから
Squeryl に必要なインポート
声明?
誤った記述:
エラー メッセージ:「見つかりません: 値から」
mysql - Play 2フレームワークのsquerylでManyToMany関係のためにMySQLで中間テーブルを設定する方法は?
私はまだ Web 開発、scala、play 2.0、および squeryl の詳細をすべて学んでおり、2 つのテーブル間に ManyToMany 関係を設定しようとしています。
ここにある情報を調べましたが、中間テーブルに問題があります。私はすべてを見てきましたが、それがどのように構成されるべきかの良い例を見つけることができません.
データベースに MySQL を使用しており、中間テーブルで外部キーと主キーを使用しようとしましたが、どちらも機能しなかったか、間違っている可能性があります。それで、誰かが中間テーブルがどのように見えるべきかの明確な例を教えてもらえますか?
もう少し詳しく説明すると、関連付けたい 2 つのテーブルの基本構造は次のとおりです。
これらは、tableOne の名前と、tableTwo の name 列の省略形である tableTwo の idCode によって関連付けられます。
MySQL、squeryl、およびリンクに示されている形式を使用して、誰でもこれを進めるのを手伝ってもらえますか?
scala - Squeryl日付から長い変換
Squeryl を使用して、java.util.Date (またはタイムスタンプ) を int (または Long) としてデータベースに格納したいと考えています。
日付を数値に、またはその逆に変換する方法を制御したいと思います。
どうすればこれを達成できますか?
私は、java/hibernate から来て、scala/squeryl にかなり慣れていません。Java/hibernate に戻って、ユーザー タイプを作成し、それらをグローバルに登録するか、アノテーション付きのフィールドでローカルに使用することができました。このユーザー タイプは、オブジェクト タイプをデータベースに永続化する方法と、データベースからオブジェクト タイプをロードする方法を定義します。
squeryl と scala のドキュメントをいくつか読んだところ、次の 2 つのことに気付きました。
カスタムタイプがあります
変換のために呼び出される暗黙的な関数メカニズムがあります
これらのいずれかが役立つことはわかっていますが、その方法を理解するための適切な完全な例が見つかりませんでした。
どんな助けでも大歓迎です!
squeryl - Squeryl の部分更新がコンパイルされない
ここでスクエリルが何を伝えようとしているのかわからない:
エラー: org.squeryl.dsl.fsm.Unconditioned =:= org.squeryl.dsl.fsm.Conditioned であることを証明できません。
の上:
エラーは set 句にあります
スキーマ:
助けてくれてありがとう。
scala - マッパー対レコード/Squeryl
私はLiftフレームワークで最初のプロジェクトを開始しようとしています。どの永続ライブラリを選択するかを決定する必要があります。MapperとRecordの両方が機能するように、リレーショナルバックエンドを使用しようとしています。
Mapperの場合(私が最も見逃しているのは、RDBMSに送信されるクエリを制御する機能です)、特にSQLの結合や集計などによって解決される、より複雑なクエリに関してはそうです。次の例を見てみましょう-次の2つのエンティティを作成しましょう:
エンティティMyProduct
の専門分野の1つはどこにありますか。BaseProduct
これらのエンティティ間には明らかに1対1の関係があります。MyProduct
ただし、正確なものと一緒にクエリを実行するために私が思いついた最良の可能性はBaseProduct
、次のようなクエリでした。
これは2つのクエリを発行します(さらに、選択するMyProduct
エンティティのフィールドを制御できないのではないかと思います。
Mapperライブラリには十分に悪い。Record / Squeryl APIに関する私の主な懸念は、Proto
MapperAPIの周りに存在するすべてのクラスが不足しているという事実です。レコードのこれらのクラスの機能に近いものはありますか?Squerylのデータベース固有の機能(PostgreSQLの幾何学的クエリなど)にアクセスすることは可能ですか?
これらのレイヤーのいずれかに他の長所と短所はありますか?または、データベースとの通信をタイプセーフに適切にカプセル化し、クエリを適切に制御したい場合に注意が必要な他の抽象化レイヤーはありますか(PHPのPDOレイヤーを使用してクエリを直接発行することに慣れていました-Iこのような直接クエリインターフェイスは必要ありませんが、クエリを制御できる可能性は素晴らしいでしょう)Liftフレームワークとの統合は間違いなく利点です。
ありがとうございました!
date - squeryl日付から長い変換-クエリは簡単な操作でハングします
私の前の質問へのフォローアップの質問のようなもの: squeryl日付から長い変換
そのスレッドで述べられているように、DateTime(model)からLong(DB)への変換を実装しました。
有効期限のあるすべてのレコードを削除する簡単なクエリを作成しました。
しかし、クエリはそこでハングし、何も実行せず、エラーはスローされません...「deletingexpired」が出力されるだけで、「finish」は表示されません。
また、「t.expiresltnow」やその他のバリエーションも試しましたが成功しませんでした。
これを引き起こしている原因とそれを修正する方法はありますか?
ltを。〜<に変更する場合の編集、ltを===に変更する場合でも、クエリはnowとnow.getMillisの両方で正常に機能するという問題があります。