是否可以在Scala中使用Morphia?
是否还有支持scala的MongoDB的其他轻量级ORM?
答案 0 :(得分:7)
答案 1 :(得分:6)
Morphia 只是一个基于 mongo-java-driver 的持久层,它使用JPA样式的注释进行对象映射。它应该与Scala完美配合。
在“原生”Scala驱动程序中(值得一提的是,所有这些驱动程序都基于 mongo-java-driver ),Rogue (developed by Foursquare)是最接近 Morphia的意识形态(虽然它不使用注释,但这些注释不被认为是Scala-idiomatic)。
答案 2 :(得分:1)
我更喜欢“Mongo Scala Driver”:
答案 3 :(得分:0)
Morphia可能更平易近人,并且学习曲线更平滑(但更重要),但实现静态类型安全和自动完成支持至关重要Rogue在查询时提供的信息实际上比Morphia高一级 - Morphia只是运行时安全,他们也承认beginning of the 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()
VS
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/