Hibernate逆向工程主键(EmbeddedId到IdClass)

时间:2011-03-18 15:29:16

标签: hibernate jpa reverse-engineering hibernate-tools hbm2java

我正在使用hbm2java(hibernate3-maven-plugin)来生成实体。

如何将自动生成的@EmbeddedId切换为@IdClass?

由于

2 个答案:

答案 0 :(得分:0)

hibernate maven插件不会自动执行此操作,如果要使用@IdClass,则需要手动更新类。

答案 1 :(得分:0)

我没有试过跟随。但是从我使用Hibernate反向工程工具开始,我认为应该可以使用reveng.xml文件。 在你的pom文件中。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>hibernate3-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
    <components>
        <component>
            <name>hbm2java</name>
        </component>
    </components>
    <componentProperties>
       <revengfile>/src/main/resources/reveng/model.reveng.xml</revengfile>
    </componentProperties>
    </configuration>
    <executions>
  <execution>
  <phase>compile</phase>
  <goals>
    <goal>hbm2java</goal>
  </goals>
  </execution>
</executions>

在reveng.xml中指定到IdClass的类型映射(请参阅Hibernate工具文档http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#type_maphttp://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#d0e5869)。

如上所述,我没有尝试过。

由于其他各种原因,我放弃了使用逆向工程。一个问题是hibernate工具不符合Hibernate 3.5及更高版本。此外,Maven插件是第三方,并使用旧版本的Hibernate工具,而不是通用的。所以我也遇到了必须从Maven调用ant来进行逆向工程的情况。