我有一个表1 TAS:
<class name="TAS" table="NCPTB016_TAS">
<composite-id>
<key-many-to-one column="NU_MACRO_PROCESSO_007" name="MacroProcesso"/>
<key-property column="NU_TAS" name="Id" />
</composite-id>
... //and some other properties
我有一张表:
<class name="STAS" table="NCPTB017_STAS">
<composite-id>
<key-many-to-one column="NU_MACRO_PROCESSO_016" name="MacroProcesso"/>
<key-many-to-one column="NU_TAS_016" name="TAS" />
<key-property column="NU_STAS" name="Id" />
</composite-id>
... //some properties
表STAS是复合ID。它是TAS密钥(即复合ID)和另一个密钥。 我该如何映射? 当我这样做的时候,我得到了一个错误:
外键(FK451D68E632669A4:NCPTB017_STAS [NU_TAS_016]))必须与引用的主键具有相同的列数(NCPTB016_TAS [NU_MACRO_PROCESSO_007,NU_TAS])
更简单一点, 我如何映射具有复合id的多对一???
例: Table1具有compososite-id Id1和Id2 Table2与table1有多对一的关系,因为它有一个复合FK,Id1和Id2来自table1 ...
感谢您的帮助!
答案 0 :(得分:1)
从未使用它,但我会这样说:
<many-to-one ...>
<column name="key1" />
<column name="key2" />
</many-to-one>