哪个是适用于 Scala 和 PostgreSQL 的 Play 框架的最佳数据访问选项?

Which is best data access options available for Play framework with Scala and PostgreSQL?

我们有较早的经验和大量可重用的 code/components 大部分是使用 Spring MVC、Hibernate、PostgreSQL 数据库完成的。

但是最近我们打算开始一个新的项目。我们决定在 Scala 中使用 Play 框架。我们是 Scala Play 框架的新成员。因此我们无法决定使用哪种 ORM(对象关系映射)框架。由于许多可重用代码,我们希望select Hibernate。

我们发现关于 Hibernate 的可怕词汇是 "JPA using Hibernate in Scala with play it is probably not the best way, and it should be considered as legacy and deprecated"。我们真的很迷茫用什么?

在寻找可能性时,我们发现了 Anorm 和 Hibernate。可能存在一些我们还不知道的其他框架。

所以请建议我们将什么用于 Scala 和 PostgreSQL 的 Play 框架?

提前致谢!

如果您确实想要 ORM,那么 JPA 可能是您的不二之选。这将迫使您拥有可变域模型 类 等,但也许这是您愿意接受的权衡。 (就个人而言,我不会)

如果您对与数据库对话的其他方式持开放态度,有一些有趣的选择:

这里有一篇非常不错的博客post,它比较了不同的库:http://manuel.bernhardt.io/2014/02/04/a-quick-tour-of-relational-database-access-with-scala/

看看 Skinny ORM。

http://skinny-framework.org/documentation/orm.html

http://blog.seratch.net/post/110711051753/skinny-orm-for-play-framework

Skinny ORM 不仅受到 Rails ActiveRecord 的高度启发,而且足够灵活,因为它建立在 ScalikeJDBC 库之上,这是一个精简但功能强大的 JDBC 包装器。

http://scalikejdbc.org/

ebean 提供了 playframework 它看起来像 JPA 但不是 JPA,你可以进行简单的查询和高效的(流式处理,部分更新......)