我们有较早的经验和许多可重用的代码/组件,主要是使用 Spring MVC、Hibernate、PostgreSQL 数据库完成的。
但是最近我们打算开始一个新的项目。我们决定在 Scala 中使用 Play 框架。我们是 Scala Play 框架的新成员。因此我们无法决定使用哪种 ORM(对象关系映射)框架。由于可重用代码较多,我们希望选择Hibernate。
我们发现关于 Hibernate 的可怕言论是“在 Scala 中使用 Hibernate 的 JPA 可能不是最好的方式,它应该被视为遗留和弃用”。我们真的很困惑该用什么?
在寻找可能性时,我们发现了 Anorm 和 Hibernate。可能存在一些我们还不知道的其他框架。
那么请建议我们将什么用于 Scala 和 PostgreSQL 的 Play 框架?
提前致谢!
最佳答案
如果您确实想要 ORM,那么 JPA 可能是您的不二之选。这将迫使您拥有可变域模型类等,但也许这是您愿意接受的权衡。 (就我个人而言,我不会)
如果您对与数据库对话的其他方式持开放态度,有一些有趣的选择:
- anorm - 接近于 SQL 但比直接使用 JDBC 好得多 - https://playframework.com/documentation/2.3.7/ScalaAnorm
- slick - “功能关系映射”,类型安全查询 - http://slick.typesafe.com
- activate - 具有可插入持久性后端的“软件事务内存”- http://activate-framework.org
这是一篇比较不同库的非常好的博客文章:http://manuel.bernhardt.io/2014/02/04/a-quick-tour-of-relational-database-access-with-scala/
关于hibernate - 哪个是适用于 Scala 和 PostgreSQL 的 Play 框架的最佳数据访问选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28476658/