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

发布于 2024-10-23 18:26:50 字数 105 浏览 2 评论 0原文

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

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

谢谢

I am using hbm2java (hibernate3-maven-plugin) in order to generate entities.

How do I switch the auto generated @EmbeddedId to @IdClass?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉月流沐 2024-10-30 18:26:50

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

The hibernate maven plugin doesn't do that automatically, you need to update your classes manually if you want to use @IdClass.

装纯掩盖桑 2024-10-30 18:26:50

我没有尝试跟随。但根据我一直在使用 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来进行逆向工程的情况。

I have not tried to following. But from what I have been working with Hibernate reverseengineering tool I think it should be possible by using a reveng.xml file.
In your pom file.

<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>

And in the reveng.xml specify the type mapping to the IdClass (see Hibernate tools documentation http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#type_map or http://docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#d0e5869).

As mentioned, I have not tried it.

For various other reason I gave up on using reverse engineering. One problem is that hibernate tools is not compliant with Hibernate 3.5 and above. Furthermore the Maven plugin is third party and uses an older versions of Hibernate tools, than the one general available. So I also came into the situation where I had to call ant from Maven to do the reverse engineering.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文