Hibernate5 中的 "Reverse Engineering" 功能在哪里?
Where is the "Reverse Engineering" feature in Hibernate5?
我正在将一个旧项目从 hibernate3 升级到 hibernate5。该项目依赖于 hbm2java(所谓的逆向工程工具)。在旧项目中,这是用 mvn hibernate3:hbm2java
执行的。
不幸的是,hbm2java
在 Hibernate5 中找不到 - 不在代码中,也不在文档中。
旧 hbm2java
的 Hibernate5 等价物是什么?或者如果它不再受支持,最接近的替代方案是什么?我愿意完全摆脱 Hibernate,如果这是摆脱 Hibernate 3 所需要的。
hibernate-maven-plugin最新版本是4.3.1。
自然地使用 hibernate 4.3.1 就可以摆脱 hibernate 3。
看起来 hbm2java 任务存在于最新的休眠版本的源代码中:https://github.com/hibernate/hibernate-tools/blob/master/main/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java。这就是你要找的,不是吗?因此,也应该可以在本地 Maven 仓库中构建 hibernate5 github 项目,然后在项目 pom.
中绑定依赖项
最后在执行部分添加适当的任务和目标。
建议#1:
你可以使用maven ant runner。它可能会有所帮助。
mvn antrun:run@hbm2java
如果您修改了模板(请参阅文档),那么在 pom.xml 中,将休眠工具标签修改为:
<hibernatetool templatepath="src/the/path/to/the/directory/containing/pojo/directory">
以上路径必须指向名为 pojo 的目录的父目录,其中包含您的模板。
此外,如果您有自定义逆向工程策略 class,请在 pom.xml 中将此属性添加到 jdbcconfiguration 标记。
reversestrategy="fully.qualified.name.CustomDelegatingReverseEngineeringStrategy"
资源 Link: Hibernate tools reverse engineering using Maven
我还没有检查过,但您可以使用 Hibernate 5.X 版本尝试此过程。
建议#2:
这个问题在 Hibernate 5.x 版本中似乎很严重。所有建议是使用 4.3 版本进行逆向工程而不是 5.x
资源 Link:
Step by step tutorial to use 4.3 instead of 5.1 with pictorial view is given here:
http://o7planning.org/en/10125/using-hibernate-tools-generate-entity-classes-from-tables
部分问题如下:
- 数据库区分大小写问题
- 类型映射
- table过滤
- 未指定
<schema-selection>
标签
这个问题需要手动解决(这只是基本的 XML),或者您可以使用 Hibernate 插件,它提供了专门的编辑器。
http://www.hibernate.org/30.html
对于逆向工程规则,你可以通过这个教程:Chapter 6. Controlling reverse engineering
我正在将一个旧项目从 hibernate3 升级到 hibernate5。该项目依赖于 hbm2java(所谓的逆向工程工具)。在旧项目中,这是用 mvn hibernate3:hbm2java
执行的。
不幸的是,hbm2java
在 Hibernate5 中找不到 - 不在代码中,也不在文档中。
旧 hbm2java
的 Hibernate5 等价物是什么?或者如果它不再受支持,最接近的替代方案是什么?我愿意完全摆脱 Hibernate,如果这是摆脱 Hibernate 3 所需要的。
hibernate-maven-plugin最新版本是4.3.1。
自然地使用 hibernate 4.3.1 就可以摆脱 hibernate 3。
看起来 hbm2java 任务存在于最新的休眠版本的源代码中:https://github.com/hibernate/hibernate-tools/blob/master/main/src/java/org/hibernate/tool/ant/Hbm2JavaExporterTask.java。这就是你要找的,不是吗?因此,也应该可以在本地 Maven 仓库中构建 hibernate5 github 项目,然后在项目 pom.
中绑定依赖项最后在执行部分添加适当的任务和目标。
建议#1:
你可以使用maven ant runner。它可能会有所帮助。
mvn antrun:run@hbm2java
如果您修改了模板(请参阅文档),那么在 pom.xml 中,将休眠工具标签修改为:
<hibernatetool templatepath="src/the/path/to/the/directory/containing/pojo/directory">
以上路径必须指向名为 pojo 的目录的父目录,其中包含您的模板。
此外,如果您有自定义逆向工程策略 class,请在 pom.xml 中将此属性添加到 jdbcconfiguration 标记。
reversestrategy="fully.qualified.name.CustomDelegatingReverseEngineeringStrategy"
资源 Link: Hibernate tools reverse engineering using Maven
我还没有检查过,但您可以使用 Hibernate 5.X 版本尝试此过程。
建议#2:
这个问题在 Hibernate 5.x 版本中似乎很严重。所有建议是使用 4.3 版本进行逆向工程而不是 5.x
资源 Link:
Step by step tutorial to use 4.3 instead of 5.1 with pictorial view is given here: http://o7planning.org/en/10125/using-hibernate-tools-generate-entity-classes-from-tables
部分问题如下:
- 数据库区分大小写问题
- 类型映射
- table过滤
- 未指定
<schema-selection>
标签
这个问题需要手动解决(这只是基本的 XML),或者您可以使用 Hibernate 插件,它提供了专门的编辑器。 http://www.hibernate.org/30.html
对于逆向工程规则,你可以通过这个教程:Chapter 6. Controlling reverse engineering