まあ、私は休止状態がそれほど進んでいないので、たくさん検索しようとしましたが、似たような質問がたくさん見つかりましたが、私のケースを実際に適用するものはありませんでした。インデックス「id」を持つテーブルTABLE1と、インデックスとして持つ別のテーブル(TABLE1_IDとNUMBER)があります。TABLE1_ID のみが外部キーですが、数値は特定のものを参照していません
表 1 には、次の休止状態のマッピングがあります
<class name="com.test.basic.BASICTABLE1"
entity-name="com.test.TABLE1" table="TABLE1"
dynamic-update="true" optimistic-lock="version">
<id name="id" type="long">
<column name="id" />
<generator class="native">
<param name="sequence">${table1_id.generator.sequence}</param>
</generator>
</id>
<version name="versionNumber" column="verno" generated="always"
access="field" />
<property name="column1" column="column1" type="string" length="19"
not-null="true" access="field" />
</class>
他のテーブルのマッピングがどうあるべきかわかりません。私は次の方法でそれをしました
<class name="com.test.basic.BASICTABLE2"
entity-name="com.test.TABLE2" table="table2"
dynamic-update="true" optimistic-lock="version">
<composite-id name="id" class="com.test.basic.TABLE1TABLE2Id" >
<key-property name="TABLE1_ID" column="TABLE1_ID" type="long" />
<key-property name="NUMBER" column="NUMBER" type="short"/>
</composite-id>
</class>
中間マッピングが必要であることをどこかで読んだ後、クラス TABLE1TABLE2Id を作成したことに注意してください。
TABLE2 マッピングに何か問題があると確信していますが (休止状態についてはあまり詳しくありません)、アプリをインストールしようとすると、次のエラーが表示されます。
Foreign key (TABLE1 [id]) must have same number of columns as the referenced primary key (TABLE2 [TABLE1_ID, NUMBER])
誰の助けにも感謝します:)