8

ScalaでMorphiaを使用することは可能ですか?

ScalaをサポートするMongoDB用の他の軽量ORMはありますか?

4

4 に答える 4

7

サラットをチェックしてください:

https://github.com/novus/salat

Salat は、ピクルされた Scala シグネチャを使用して、ケース クラスをシリアライズおよびデシリアライズします。

于 2011-02-20T23:38:11.680 に答える
6

Morphiaは、オブジェクト マッピングに JPA スタイルのアノテーションを使用するmongo-java-driverに基づく単なる永続化レイヤーです。Scala で完全に動作するはずです。

「ネイティブ」な Scala ドライバー (すべてがmongo-java-driverにも基づいていることに言及する価値があります) の中で、Rogue (Foursquare によって開発された)は、イデオロギー的にMorphiaに最も近いものです(ただし、注釈は使用されていません。 t は Scala の慣用句と見なされます)。

于 2011-02-21T12:51:35.633 に答える
1

私は「Mongo Scala Driver」を好みます:

https://github.com/osinka/mongo-scala-driver

于 2011-02-21T10:43:52.697 に答える
0

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/を参照してください。

于 2014-03-19T03:49:02.847 に答える