0

まあ、私は休止状態がそれほど進んでいないので、たくさん検索しようとしましたが、似たような質問がたくさん見つかりましたが、私のケースを実際に適用するものはありませんでした。インデックス「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])

誰の助けにも感謝します:)

4

1 に答える 1