我正在将一个旧项目从hibernate3升级到hibernate5。该项目依赖于hbm2java(所谓的逆向工程工具)。在旧项目中,这是使用mvn hibernate3:hbm2java
执行的。
不幸的是,在Hibernate5中找不到hbm2java
-在代码中没有,在文档中也没有。
Hibernate5与旧hbm2java
等效的是什么?或者,如果不再受支持,最接近的选择是什么?如果那是摆脱Hibernate 3所需要的,我愿意完全脱离Hibernate。
最佳答案
建议1:
您可以使用Maven Ant 赛跑者。这可能会有所帮助。
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
以下是一些问题:
<schema-selection>
标签需要手工解决此问题(它只是基本的XML),或者您可以使用提供专门编辑器的Hibernate插件。
http://www.hibernate.org/30.html
对于逆向工程规则,您可以阅读本教程:Chapter 6. Controlling reverse engineering