我在C#,MVC,Entity Framework,数据库中首先开发了几年。现在我想尝试Java并选择Play Framework和IDEA作为IDE。 现在我搜索这样的ORM系统:
答案 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
,而且我真的有机会与许多ORM
的许多技术合作(.NET: NHibernate, Entity Framework, Linq. Java: Hibernate, JPA. Scala: Anorm SQL
),对我来说没有好的解决方案。我使用了model first
和database 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感兴趣的人,我推荐这本书
BTW:JPA的命名查询/ JPQL可能适用于简单查询需求的sql。 Ebean不支持JPQL,因此如果想要使用它,则需要完整的JPA实现,如Hibernate或EclipseLink。答案 3 :(得分:0)
Jooq不支持嵌套对象。这个想法很好,但不是很有用。