我正在将一个旧项目从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

    10-08 11:41