1

エンティティを生成するためにhbm2java(hibernate3-maven-plugin)を使用しています。

自動生成された@EmbeddedIdを@IdClassに切り替えるにはどうすればよいですか?

ありがとう

4

2 に答える 2

0

hibernate mavenプラグインはそれを自動的に行いません。@IdClassを使用する場合は、クラスを手動で更新する必要があります。

于 2011-03-18T16:59:16.557 に答える
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_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を呼び出さなければならない状況にもなりました。

于 2011-03-21T16:42:31.207 に答える