"逆向工程" Hibernate5中的功能?

时间:2017-06-11 04:38:50

标签: java hibernate-5.x hibernate3

我将旧项目从hibernate3升级到hibernate5。该项目依赖于hbm2java(所谓的逆向工程工具)。在旧项目中,这是使用mvn hibernate3:hbm2java执行的。

不幸的是,在Hibernate5中找不到hbm2java - 不是在代码中,而是在文档中。

hbm2java的Hibernate5等价物是什么?或者,如果它不再受支持,最接近的替代方案是什么?如果能够摆脱Hibernate 3,我愿意完全退出Hibernate。

2 个答案:

答案 0 :(得分:3)

hibernate-maven-plugin的最新版本是4.3.1。

你可以自然地使用hibernate 4.3.1来摆脱hibernate 3。

看起来hbm2java任务存在于最新的hibernate版本的源代码中:https://github.com/hibernate/hibernate-tools/blob/master/main/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java。这就是你要找的不是吗?因此,还应该可以在本地maven仓库中构建hibernate5 github项目,然后在项目pom中绑定依赖项。

最后在执行部分添加适当的任务和目标。

答案 1 :(得分:2)

建议#1:

你可以使用maven ant runner。它可能有所帮助。

mvn antrun:run@hbm2java

如果你有修改过的模板(参见文档),那么在pom.xml中修改hibernate工具标签,如下所示:

<hibernatetool templatepath="src/the/path/to/the/directory/containing/pojo/directory">

上述路径必须指向名为pojo的目录的父级,其中包含您的模板。

此外,如果您有自定义逆向工程策略类,请在pom.xml中将此属性添加到jdbcconfiguration标记。

reversestrategy="fully.qualified.name.CustomDelegatingReverseEngineeringStrategy"

资源链接: Hibernate tools reverse engineering using Maven

我还没有检查过,但你可以尝试使用Hibernate 5.X版本的这个程序。

建议#2:

这个问题在Hibernate 5.x版本中似乎很关键。所有建议都是使用4.3版本进行逆向工程而不是5.x

资源链接: https://stackoverflow.com/a/37577315

  

这里给出了使用4.3而不是5.1的图示视图的分步教程:   http://o7planning.org/en/10125/using-hibernate-tools-generate-entity-classes-from-tables

下面给出了一些问题:

  1. 数据库区分大小写的问题
  2. 类型映射
  3. 表格过滤
  4. 未指定<schema-selection>标记
  5. 这个问题需要手工解决(它只是基本的XML),或者你可以使用Hibernate插件,它提供了一个专门的编辑器。 http://www.hibernate.org/30.html

    对于逆向工程规则,您可以阅读本教程:Chapter 6. Controlling reverse engineering