我正在使用 Hibernate3 Maven 插件从数据库中生成域/模型 POJO。其基本原理是确保 DBA 对数据库的更新在开发人员开始进一步工作之前自动映射到模型层。所以它的工作方式是生成一个 Hibernate CFG,然后是 POJO;此外,由于较旧的实现由使用注释而不是 hbm.xml 的开发人员组成,因此需要对生成的类进行注释。这是从 POM 中提取的 Hibernate Maven 插件
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>hbm2cfgxml</id>
<phase>generate-resources</phase>
<goals>
<goal>hbm2cfgxml</goal>
</goals>
<inherited>false</inherited>
<configuration>
<components>
<component>
<name>hbm2cfgxml</name>
<implementation>jdbcconfiguration</implementation>
</component>
</components>
<componentProperties>
<ejb3>true</ejb3>
<packagename>com.dss.domain</packagename>
</componentProperties>
</configuration>
</execution>
<execution>
<id>hbm2java</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2java</goal>
</goals>
<inherited>false</inherited>
<configuration>
<components>
<component>
<name>hbm2java</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
<componentProperties>
<ejb3>true</ejb3>
<packagename>com.dss.domain</packagename>
<configurationfile>target/hibernate3/generated-mappings/hibernate.cfg.xml</configurationfile>
</componentProperties>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.16</version>
</dependency>
</dependencies>
</plugin>
</plugins>
我可以看到生成了 cfg.xml 文件;但 hbm2java 失败并显示消息
无法在项目 dss-domain 上执行目标 org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2java (hbm2java):执行目标 org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2java 的 hbm2java 失败:无法在配置中加载声明为 <mapping class="com.dss.domain.Foo" /> 的类:-> [帮助 1]
在稍后阶段,所有这些都必须移动到我们当前拥有的 JPA 实现中,所以另一个问题是我是否必须在组件属性中切换到 jpaconfiguration?
如果我将依赖项更新为旧项目(Hibernate 3.6.6-FINAL)中最近更新的依赖项,这些似乎都不起作用;但这是此处发布的另一个问题。
非常欢迎任何指针或完整的解决方案;-)