問題タブ [slick-2.0]

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.

0 投票する
1 に答える
1523 参照

scala - scala.slick.lifted.ColumnOrdered[Long] に暗黙の Ordering が定義されていません

play プラグイン経由で slick 2.0 を使用しています。以下は私のテーブル マッピングです。

次に、このような TableQuery オブジェクトを作成しました

val tasks = TableQuery[Tasks]

以前はどちらが正しく返されるtasks.listかを取得していましたが、使用して結果を並べ替えると、 代わりにこのエラーが発生しましたList[Task]tasks.list.sortBy(_.id.get.desc)

scala.slick.lifted.ColumnOrdered[Long] には暗黙の Ordering が定義されていません。

何か案が?

0 投票する
2 に答える
1096 参照

scala - Slick 2.0 で DAO を使用する場合、データベース アクセス メソッドをどこに配置すればよいですか?

(この質問は、非常によく似た以前のヘルプ リクエストに基づいています。DAO と複数のデータベース ドライバーの導入により、同じ問題には異なるアプローチが必要になり、新しい SO の質問が必要になることを願っています。)

私はclassと Slick をTable次のように定義しています:

データ アクセス オブジェクト:

my に次のようなものを追加できるようになったので、これは非常に素晴らしいことですapplication.conf

...そして、コントローラーで次のことを行うと:

私は自分の にアクセスでき、foos TableQueryで指定されたドライバーとデータベースの URL を自動的に取得しdb.defaultますapplication.conf

似たような、しかしあまり良い方法ではありませんが、テストで次のことを実行できますSpecification

ただし、に作用できるメソッドを定義したい場合はどうすればよいTableQuery[Foo]ですか? このようなもの:


問題

メソッドを記述する正しい方法は何ですか。次のfindByTitleことができるようにするには、どこに配置する必要がありますか。

  • で動作する同名のメソッドと衝突しないような方法で呼び出しTableQuery[Bar]ます。オブジェクト指向から来て、 のようなことをしたい気がしますがfoos.findByTitle("someFoo")、この機能的なスタイルを行うためのより良い方法があれば、提案をお待ちしています。
  • db.defaultクエリがh2 ドライバーで動作するようにアプリケーション コントローラーから呼び出し、 postgres ドライバーSpecificationで動作するようにテストから呼び出します。db.test

余談ですが、これをDAOに入れることができれば:

そして、import models.dao.current._このDAOを使用したい場所ならどこでも、同じフォームを次のように拡張するにはどうすればよいですか:

これを行おうとすると、コンパイラはan implicit Application in scope.

0 投票する
2 に答える
1836 参照

scala - スリック:groupBy「グループ」から要素を取得

groupBy の「グループ」部分から要素を選択する好ましい方法は何ですか? (groupBy は [キー -> グループ] 関係になります)。可能であれば、1 つのデータベース ヒット、または少なくとも一定量のヒットが発生するはずです。

例として、Locations(id) テーブルと Companies(id, locationId,foundDate) テーブルがあるとします。各場所で最も古い会社を見つけるにはどうすればよいでしょうか?

私はこのようにしたでしょう:

しかし、これは実行時例外を生成します:

0 投票する
1 に答える
490 参照

scala - スリック ビルド フィルター基準

以下のコードはほとんどの場合それ自体で説明していると思いますが、ここで簡単に説明します。

クエリ条件に追加する必要がある ID のリストがあります。条件をクエリに簡単に「AND」することはできますが (以下をval incorrect参照)、条件を「OR」する良い方法を思い付くのに苦労しています。

ID のリストは静的ではありません。例としていくつか入れました。可能であれば、for 内包表記を使用する方法と、for 内包表記を使用しない方法を知りたいです。

また、コードを実行したい場合は、このコードを repl にドロップして、いくつかのインポートを追加できるはずです。

0 投票する
2 に答える
1755 参照

slick - Scala slick 2.0 updateAll は insertALL と同等ですか?

slick を使用してバッチ更新を行う方法を探しています。insertALL に相当する updateAll はありますか? これまでのところ、グールの研究は失敗に終わっています。

さまざまなステータスを持つケース クラスのリストがあります。それぞれが異なる数値を持っているため、通常の更新クエリを実行できません。同時に、更新したいレコードが何千もある可能性があるため、複数の更新要求を保存したいと考えています。

0 投票する
2 に答える
1522 参照

scala - Play Scala の使用時に Slick 列マッピングでオプション文字列をトリミングする方法

Slick で Play フレームワークを使用するときに固定文字データベース列から値をトリミングする正しい方法と正しい場所はどこですか?

文字列を削除したい理由は、データベース スキーマがcharacter(40)型ではなく列の型を指定しているためcharacter varyingです。

私はこのケースクラスを持っています:

私はこのスリックテーブルリレーションを持っています:

JSON マッピングを使用したこのテスト クラスがあります。

これはすべて機能しますが、スペースが埋め込まれた文字列を返します。

JSON マッパーでトリミングのいくつかのバリエーションを試しました。

trim1上記は機能しますnullが、オプションの値が存在しない場合は戻ります。

trim2mapはすべてのケースで機能しますが、さまざまな場所で、getForElseを使用するよりも「より慣用的な Scala」であると述べられているのを見てきましたfold

trim3現在の Scala の理解の限界を超えており、私の意図を示していますが、コンパイルされません。

の場合のコンパイルエラーtrim3は次のとおりです。

型の不一致; found : 必要なオブジェクト: play.api.libs.json.Json.JsValueWrapper

私は確かに を使用して生活することができますがfold、これを行う通常の方法は何ですか?

0 投票する
1 に答える
247 参照

scala - ケースクラスを使用する代わりに、slick2 のクラスとテーブルクラスのマッピングを記述する方法は?

以前はケースクラスを使ってクラスオブジェクトをslick2用のデータに変換していましたが、現在は別のplayプラグインを使用しており、プラグインオブジェクトはケースクラスを使用しており、私のクラスはこのケースクラスから継承されています。ですので、ケースクラス固有のケースクラスにscala言語禁止のユースケースクラスとしてケースクラスを使用することはできません。

前:

できます。しかし今、私は上から下に変更する必要があります:

自動生成されたケースクラステンプレートのように、tupled と unapply(私の書き方が正しいかどうかではない) メソッドの書き方がわかりません。または、slick2 でクラスを talbe にマッピングする別の方法を教えてください。

誰でもその例を教えてもらえますか?