2

多対多の関連付けに 2 つのエンティティがあります。hbm2ddl がアクティブ化されている場合、Hibernate はこの関連付けの結合テーブルを作成します。ただし、このテーブルにはエンティティがないため、@Index アノテーションを適用できません。結合テーブルでインデックスと主キーを生成するように hibernate hbm2ddl に指示する方法はありますか?

4

2 に答える 2

1

1 つのオプションは、補助データベース オブジェクトを使用することですが、JPA アノテーションから従来の.hbm.xmlファイルに切り替える必要があります。

次に例を示します。

<!-- class mapping: -->
<class name="Entity1" table="Entity1">

  <!-- insert other mappings here -->

  <!-- this class's half of the many-to-many relationship: -->
  <set name="Entity2s" table="TheJoinTable">
    <key column="Entity1ID" />
    <many-to-many class="Entity2" column="Entity2ID" />
  </set>
</class>

<!-- auxiliary object: -->
<database-object>
  <create>CREATE INDEX MyIndex ON TheJoinTable(Entity1ID)</create>
</database-object>

別のオプションは、弾丸を噛んで本格的なエンティティを作成し、結合テーブルを置き換えることです。これは、実際に私が同様の状況で行ったことです。

お役に立てれば。

于 2010-02-10T21:33:06.750 に答える