gpt4 book ai didi

nhibernate - 将复合键映射到两个外键

转载 作者:行者123 更新时间:2023-12-02 16:25:07 24 4
gpt4 key购买 nike

我有以下两个表:

Jobs
--------
JobNo
DivisionID

NCRs
--------
ID
JobNo
SpoilageJobNo
DivisionID

JobNo 和 DivisionID 在 Jobs 表中组成一个复合键(我知道,但不幸的是它必须是一个复合键,因为它实际上是一个从 4 个不同数据库提取数据的 View ),我需要加入这个键到 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>

但我刚刚收到错误外键 (FK480F1031931B2CA4:NCRs [JobNo])) 必须具有与引用的主键 (v_Jobs [JobNo, DivisionID]) 相同的列数

最佳答案

这是汤姆对其问题的回答:

啊哈,我想我已经明白了。我已经用以下内容更新了 NCR 的映射:

<many-to-one name="Job" class="Job">
<column name="JobNo"></column>
<column name="DivisionID"></column>
</many-to-one>

<many-to-one name="SpoilageJob" class="Job">
<column name="SpoilageJobNo"></column>
<column name="DivisionID"></column>
</many-to-one>

关于nhibernate - 将复合键映射到两个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com