9

SORMを使用して DSL でクエリを作成する代わりに、プレーンな SQL クエリでアイテムをフェッチすることは可能ですか?

たとえば、次のようなものを作成するための API はありますか

val metallica = Db.query[Artist].fromString("SELECT * FROM artist WHERE name = ?", "Metallica").fetchOne() // Option[Artist]

それ以外の

val metallica = Db.query[Artist].whereEqual("name", "Metallica").fetchOne() // Option[Artist]
4

2 に答える 2

7

エンティティにコレクションやその他の構造化された値を設定するには、結合できない方法で複数のテーブルからデータをフェッチする必要があるため、データを直接フェッチするための API が公開されることはほとんどありません。ただし、この問題に対する別のアプローチが現在検討されています。

実装方法は次のとおりです。

val artists : Seq[Artist] 
  = Db.fetchWithSql[Artist]("SELECT id FROM artist WHERE name = ?", "Metallica")

この問題が注目すべきサポートをここで得た場合、またはさらに良いことに、ここでサポートされた場合、次のマイナー リリースで実装される可能性があります。

アップデート

0.3.1 で実装

于 2012-11-23T15:19:31.213 に答える
0

オブジェクトを 1 つだけ (2 つ以上の引数で) 取得したい場合は、次のようにすることもできます。

Sorm クエリアを使用して

Db.query[Artist].where(Querier.And(Querier.Equal("name", "Name"), Querier.Equal("surname", "surname"))).fetchOne()

あるいは単に

Db.query[Artist].whereEqual("name", "Name").whereEqual( "surname","surname").fetchOne()
于 2016-04-24T16:39:17.307 に答える