数据库第一个ORM for Play Framework(Java),带有自动数据库模型生成

时间:2013-12-05 18:46:15

标签: java orm playframework playframework-2.0 database-first

我在C#,MVC,Entity Framework,数据库中首先开发了几年。现在我想尝试Java并选择Play Framework和IDEA作为IDE。 现在我搜索这样的ORM系统:

  • 轻松集成Play Framework;
  • 将数据库(逆向工程)的类生成作为主要工具;
  • 在C#中有简单的语言,如LINQ。(例如:from x in context.MY_TABLE select x)

4 个答案:

答案 0 :(得分:2)

我强烈建议使用jOOQ

  • 支持仅通过一个命令从控制台生成模型类:java -classpath jooq-3.1.0.jar;jooq-meta-3.1.0.jar;jooq-codegen-3.1.0.jar;postgresql-9.2-1003.jdbc4.jar;. org.jooq.util.GenerationTool /jooq_config.xml
  • 完全控制您的SQL查询。
  • 简易SQL调试。非常简单:see here
  • 灵活且功能强大的API。 Full documentation
  • Typefase。
  • 理想选择SQL深入编程。
  • 支持Java和Scala。
  • 对高级SQL类型的开箱即用支持没有问题。
  • 内置导出到xml,html,excel
  • 批量插入的内置支持。
  • 很好的支持。
  • 开源
  • 支持许多数据库引擎。

个人感受

我一直很喜欢SQL,而且我真的有机会与许多ORM的许多技术合作(.NET: NHibernate, Entity Framework, Linq. Java: Hibernate, JPA. Scala: Anorm SQL),对我来说没有好的解决方案。我使用了model firstdatabase first。每次我在应用程序的大多数关键点使用原始SQL和存储过程。 ORM产生大量垃圾,很难分析和优化。

当我发现jOOQ时,我非常怀疑。经过大约6-8个月的工作,我知道就是这样。这个工具允许你编写类似于原始SQL的每个查询,它是非常高效的工具。接下来的事情是这个工具真的快速增长。

答案 1 :(得分:1)

Play有内置ORM - 它是Ebean,只需在application.conf中取消注释几行即可使用它(并且可选择选择数据库引擎,然后选择内置H2,即。this question中描述的MySQL )

接下来在models文件夹中创建app包,然后开始添加模型。

official docs中的更多详情。

不幸的是它不支持逆向工程...

答案 2 :(得分:0)

我不知道IDEA是否支持DB - > JPA实体进行了逆向工程,但Eclipse Dali做得很好 - 我已经在几个项目中使用了这种方法,并且很满意。

http://www.eclipse.org/webtools/dali/

如果愿意,Play2可以正常使用JPA。 Ebean仅使用JPA注释。我喜欢EBean,因为即使我不完全相信JPA的标准API(我已经通过JPA 2.0,所以不知道它在JPA 2.1上有多容易)& EntityMananager的用处(对连接/不连续的实体都很麻烦)我是JPA注释的忠实粉丝。

对于任何对JPA感兴趣的人,我推荐这本书

http://www.amazon.com/Pro-JPA-2-Mike-Keith/dp/1430249269/

BTW:JPA的命名查询/ JPQL可能适用于简单查询需求的sql。 Ebean不支持JPQL,因此如果想要使用它,则需要完整的JPA实现,如Hibernate或EclipseLink。

答案 3 :(得分:0)

Jooq不支持嵌套对象。这个想法很好,但不是很有用。