我正在为我的公司在Lift创建一个小应用程序。我是Scala / Lift的新手,所以我正在利用这个机会练习。现在,我对使用什么ORM系统有疑问。
一方面,Mapper是Lift默认值。另一方面,我已经读过它在某些领域并不好,并且会被Record取代(还没有很好的文档记录,很难像我这样的新用户跟进)。
与Mapper相反,我们有JPA:标准的Java,经过测试和强大的ORM以及可信的实现,如Hibernate,但不完全“scala-ish”,并且由于它与Lift的集成,你放弃了Mapper默认提供的功能。
我已经在邮件列表上看到一些断言,即JPA正在成为Lift的方式,但它似乎并不普遍。有人可以为这件事带来一些启示吗?
谢谢!
答案 0 :(得分:8)
现在我面临同样的困境:)考虑到Mapper / Record不是更加Scalish然后是JPA / Hibernate(例如在Mapper和Record中你使用可变实体)。检查代码段Use of "immutable" Scala entities with Hibernate和Mapping of scala's Option in Hibernate,了解如何以非常谨慎的方式使用Hibernate。因此,如果您已经了解Hibernate并且对它感到满意,那么最好采用这种方式。否则,对于小项目,您可以尝试使用Mapper。
答案 1 :(得分:3)
这取决于你需要什么。如果您的模型大量使用继承和一对多对多关系,那么使用JPA可能会更好。
但是,如果你想要快速周转,Mapper就是你的选择。 Mapper / Crudify是一个伟大的脚手架对,这种力量很难被击败。