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只是一个基于mongo-java-driver的持久层,它使用 JPA 样式的注解进行对象映射。它应该与 Scala 完美配合。

在“原生”的 Scala 驱动程序中(值得一提的是,它们都基于mongo-java-driver),Rogue(由 Foursquare 开发)在意识形态上最接近Morphia(尽管它不使用注解,它们不是t 被认为是 Scala 惯用的)。

于 2011-02-21T12:51:35.633 回答
1

我更喜欢“Mongo Scala 驱动程序”:

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

于 2011-02-21T10:43:52.697 回答
0

Morphia可能更平易近人并且具有(更)平滑的学习曲线,但重要的是要意识到Rogue在查询时为您提供的静态类型安全和自动完成支持实际上比 Morphia 高一个级别——Morphia 只是运行时安全的,他们也承认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 回答