DB レプリケーションに関連する理由により、DB 内のすべてのテーブルに主キーが必要です。
私のアプリケーションのエンティティの一部は、次のように定義されています。
<class name="Item" table="ITEM">
<id name="id" column="ITEM_ID"/>
<property name="name" column="NAME" />
<set name="images" table="ITEM_IMAGE">
<key column="ITEM_ID"/>
<element type="string" column="FILENAME" not-null="true"/>
</set>
</class>
書籍Java Persistence with Hibernate (2006 年 11 月) によると。第6章、244ページ
「セットには重複する要素を含めることはできないため、ITEM_IMAGE コレクション テーブルの主キーは、宣言内の両方の列 (ITEM_ID と FILENAME) の複合体です。」
問題は、この方法でセットをマッピングすると、実際には主キーのないコレクション テーブルが作成されることです。(親実体テーブルへの外部キーのみ)
キー要素セット マッピングを使用し、2 つの列の複合主キーを使用してコレクション テーブルを強制的に作成する方法はありますか? (別のサブエンティティテーブルを作成するキー/多対多へのセットマッピングの変更には興味がありません)誰かがこの動作を説明できますか?
ありがとう!