エンティティを生成するためにhbm2java(hibernate3-maven-plugin)を使用しています。
自動生成された@EmbeddedIdを@IdClassに切り替えるにはどうすればよいですか?
ありがとう
エンティティを生成するためにhbm2java(hibernate3-maven-plugin)を使用しています。
自動生成された@EmbeddedIdを@IdClassに切り替えるにはどうすればよいですか?
ありがとう
hibernate mavenプラグインはそれを自動的に行いません。@IdClassを使用する場合は、クラスを手動で更新する必要があります。
私はフォローしようとしませんでした。しかし、私が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_mapまたはhttpを参照してください: //docs.jboss.org/tools/3.1.0.GA/en/hibernatetools/html_single/index.html#d0e5869)。
前述のように、私はそれを試していません。
他のさまざまな理由で、私はリバースエンジニアリングの使用をあきらめました。1つの問題は、HibernateツールがHibernate3.5以降に準拠していないことです。さらに、Mavenプラグインはサードパーティであり、一般的に利用可能なものよりも古いバージョンのHibernateツールを使用します。そのため、リバースエンジニアリングを行うためにMavenからantを呼び出さなければならない状況にもなりました。