次の2つのテーブルがあります。
Jobs
--------
JobNo
DivisionID
NCRs
--------
ID
JobNo
SpoilageJobNo
DivisionID
JobNo と DivisionID は Jobs テーブルの複合キーを構成します (わかっていますが、実際には 4 つの異なるデータベースからデータを取得するビューであるため、残念ながら複合キーでなければなりません)、このキーを NCR に結合する必要があります。 JobNo と SpoilageJobNo の両方のテーブル。
次のマッピングを試しました。
<class name="Job" table="v_Jobs">
<composite-id name="Key">
<key-property name="JobNo"></key-property>
<key-many-to-one name="Division" class="Division" column="DivisionID"/>
</composite-id>
<bag name="NCRs">
<key>
<column name="JobNo"></column>
<column name="DivisionID"></column>
</key>
<one-to-many class="NCR"/>
</bag>
<bag name="SpoilageNCRs">
<key>
<column name="SpoilageJobNo"></column>
<column name="DivisionID"></column>
</key>
<one-to-many class="NCR"/>
</bag>
</class>
<class name="NCR" table="NCRs">
<id name="ID">
<generator class="identity"></generator>
</id>
<many-to-one name="Division"
class="Division"
column="DivisionID">
</many-to-one>
<many-to-one name="Job"
class="Job"
column="JobNo">
</many-to-one>
<many-to-one name="SpoilageJob"
class="Job"
column="SpoilageJobNo">
</many-to-one>
</class>
しかし、私はちょうどエラーが発生しますForeign key (FK480F1031931B2CA4:NCRs [JobNo])) must have same number of columns as the referenced primary key (v_Jobs [JobNo, DivisionID])