我将旧项目从hibernate3升级到hibernate5。该项目依赖于hbm2java(所谓的逆向工程工具)。在旧项目中,这是使用mvn hibernate3:hbm2java
执行的。
不幸的是,在Hibernate5中找不到hbm2java
- 不是在代码中,而是在文档中。
旧hbm2java
的Hibernate5等价物是什么?或者,如果它不再受支持,最接近的替代方案是什么?如果能够摆脱Hibernate 3,我愿意完全退出Hibernate。
答案 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)
你可以使用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版本的这个程序。
这个问题在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
<schema-selection>
标记这个问题需要手工解决(它只是基本的XML),或者你可以使用Hibernate插件,它提供了一个专门的编辑器。 http://www.hibernate.org/30.html
对于逆向工程规则,您可以阅读本教程:Chapter 6. Controlling reverse engineering