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