ScalaでMorphiaを使用することは可能ですか?
ScalaをサポートするMongoDB用の他の軽量ORMはありますか?
サラットをチェックしてください:
https://github.com/novus/salat
Salat は、ピクルされた Scala シグネチャを使用して、ケース クラスをシリアライズおよびデシリアライズします。
Morphiaは、オブジェクト マッピングに JPA スタイルのアノテーションを使用するmongo-java-driverに基づく単なる永続化レイヤーです。Scala で完全に動作するはずです。
「ネイティブ」な Scala ドライバー (すべてがmongo-java-driverにも基づいていることに言及する価値があります) の中で、Rogue (Foursquare によって開発された)は、イデオロギー的にMorphiaに最も近いものです(ただし、注釈は使用されていません。 t は Scala の慣用句と見なされます)。
私は「Mongo Scala Driver」を好みます:
Morphiaはおそらくはるかに親しみやすく、学習曲線が (はるかに) スムーズですが、クエリが実際に Morphia の 1 レベル上にある場合、Rogueが提供する静的な型安全性と自動補完のサポートを認識することが重要です。彼らは READMEの冒頭でも認めています。
比較:
val checkin: Option[Checkin] =
Checkin where (_.venueid eqs id)
and (_.userid eqs mayor.id)
and (_.cheat eqs false)
and (_._id after sixtyDaysAgo)
limit(1).get()
対
Employee scottsBoss =
ds.find(Employee.class).filter("underlings", scottsKey).get();
フィールド名またはクエリ値のいずれかを変更すると、すぐに入力エラーが発生しますが、Morphia は実行時にのみ例外をスローします。
http://engineering.foursquare.com/2011/01/21/rogue-a-type-safe-scala-dsl-for-querying-mongodb/を参照してください。