我正在将一个旧项目从hibernate3升级到hibernate5。该项目依赖于hbm2java (所谓的逆向工程工具)。在旧的项目中,这是用mvn hibernate3:hbm2java执行的。
不幸的是,hbm2java在Hibernate5中找不到--不在代码中,在文档中也找不到。
Hibernate5与旧hbm2java的等价性是什么?或者如果它不再被支持,最接近的选择是什么?我愿意完全摆脱Hibernate,如果这就是摆脱Hibernate 3所需要的话。
发布于 2017-07-13 05:23:30
Suggestion#1:
你可以用蚂蚁跑者。也许会有帮助。
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"资源链接: 使用Maven的Hibernate工具逆向工程
我还没有检查它,但是您可以使用Hibernate 5.X版本尝试这个过程。
Suggestion#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
以下是一些问题:
<schema-selection>标记。需要手动解决这个问题(它只是基本的XML),或者您可以使用Hibernate插件,它提供了一个专门的编辑器。http://www.hibernate.org/30.html
对于反向工程规则,您可以阅读本教程:第六章逆向工程控制
发布于 2017-07-12 22:10:48
hibernate-maven插件的最新版本是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 repo中构建hibernate5 github项目,然后绑定项目pom中的依赖项。
最后,在执行部分中添加适当的任务和目标。
https://stackoverflow.com/questions/44480415
复制相似问题