1

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 つの列の複合主キーを使用してコレクション テーブルを強制的に作成する方法はありますか? (別のサブエンティティテーブルを作成するキー/多対多へのセットマッピングの変更には興味がありません)誰かがこの動作を説明できますか?

ありがとう!

関連する質問

4

1 に答える 1