Можно ли использовать Morphia в Scala?
Существуют ли какие-либо другие легкие ORM для MongoDB, поддерживающие scala?
Можно ли использовать Morphia в Scala?
Существуют ли какие-либо другие легкие ORM для MongoDB, поддерживающие scala?
Morphia – это просто уровень сохраняемости, основанный на mongo-java-driver, который использует аннотации в стиле JPA для сопоставления объектов. Он должен отлично работать со Scala.
Среди «родных» драйверов Scala (стоит упомянуть, что все они также основаны на mongo-java-driver), Rogue (разработанный Foursquare) является ближайшим идеологически к Morphia (хотя он не использует аннотации, которые не считаются Scala-идиоматическими).
.java
, а не файлом .scala
... но кто-то с лучшим пониманием может подтвердить.
- person Erik Kaplun; 10.01.2014
lift-record
подойдет.
- person Erik Kaplun; 19.03.2014
Посмотреть Салат:
https://github.com/novus/salat
Салат использует обработанные сигнатуры Scala для сериализации и десериализации классов case.
Я предпочитаю «Драйвер Mongo Scala»:
https://github.com/osinka/mongo-scala-driver
user refs many question
.
- person Freewind; 20.03.2011
Morphia, вероятно, гораздо более доступна и имеет (намного) более плавную кривую обучения, но важно понимать, что Поддержка статической безопасности типов и автоматического завершения на один уровень выше 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()
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/