哪个是最好的工具从MySQL DB生成Hibernate映射

时间:2011-07-04 12:52:55

标签: java mysql hibernate servlets orm

我在servlet中使用hibernate来访问database.DB包含很多外键,复合键和后向引用。

您能否建议我使用一些工具在MySQL中对MySQL DB进行逆向工程,以便我可以将它与hibernate一起使用。

5 个答案:

答案 0 :(得分:2)

IDE通常提供这样的实体生成。 例如,如果您使用Netbeans,只需在Java SE / Java EE-Project中从数据库转到文件/新建/持久性/实体类即可生成JPA实体。 顺便说一句,在可能的情况下使用标准的JPA(2)机制是个好主意,以便不依赖于特定的O / R-Mapper(例如Hibernate)或数据库。

答案 1 :(得分:2)

我同意Cris,

Minuteproject 4 JPA2的0.5.5版也为复合键生成了一个用@Embeddable注释的类。实体类将@EmbeddedId作为实体,并引用Embeddable类。对于组合键的外键部分,它会生成关联的@MapsId。

同时,JPA2模板还没有涵盖复合外键模式。

希望它有所帮助。

答案 2 :(得分:1)

查看JBoss Hibernate Tools,它允许您对现有数据库进行反向工程。

答案 3 :(得分:1)

在我看来,最好的一个是MinuteProject!

检查一下:

http://javacodesamples.wordpress.com/2011/02/04/jpa2-reverse-engineering-tool/

http://www.dzone.com/links/jpa2_reverseengineering_with_minuteproject_pragma.html

http://javacodesamples.wordpress.com/2010/09/04/minute-project-episode-1-the-productivity-provider/

它还在JPA旁边有一个Spring + Hibernate轨道,因此您可以使用它来满足您的休眠需求。

答案 4 :(得分:1)

我们使用 Hibernate Tools *.hbm.xml文件的帮助下生成hibernate.reveng.xml个文件。然后,我们应用Eclipse的 Hibernate Synchronizer 插件,使用*.hbm.xml文件生成实体和DAO。

hibernate.reveng.xml填补了自动生成无法猜测您的想法的部分。

Hibernate Synchronizer的主要优势是为生成的实体/ daos创建基类。您将自定义属性/方法添加到基类的子类(再次自动生成)。这里的优点是,如果您对数据库进行更改并重新生成,则您所做的更改(对子类)不会受到影响。

无论您选择哪种工具,都要注意构建一个系统,在该系统中,代码生成既简单又轻松,不仅是第一次,而且是在项目的高级阶段。如果不是,你将失去所有的优势。