这就是我想要做的,将一个对象映射到另一个具有相同主键的表。下面是一个示例,基本上我有一个具有组合键的对象,该对象具有另一个表的组合键,但我不知道如何包含这两个键才能创建正确的对象键。我突出显示了错误的行,它只包含键的一个属性。
<class name="BusinessRuleObject" table="BUSINESS_RULE_OBJECTS" schema="DB">
<composite-id name="businessRuleObjectId" class="BusinessRuleObjectId">
<key-property name="sameIdCode" column="ID_CD" />
**<key-many-to-one name="businessRule" class="BusinessRule" column="BUSINESS_RULE" />**
</composite-id>
<!-- ... STUFF GOES HERE -->
</class>
<class name="BusinessRule" table="BUSINESS_RULE_STRINGS" schema="DB">
<composite-id name="businessRule2ID" class="BusinessRule2ID">
<key-property name="sameIdCode" column="ID_CD" />
<key-property name="businessRuleCode" column="BUSINESS_RULE" />
</composite-id>
<!-- TOTALLY DIFFERENT STUFF GOES HERE -->
</class>发布于 2011-08-23 14:37:23
只包括复合外键businessRule的一个属性,因为<key-many-to-one只声明了一个列BUSINESS_RULE。它应该声明在您的示例中引用BUSINESS_RULE和ID_CD的组合键的两列。通过将ID_CD列添加到<key-many-to-one元素,您需要删除或重命名<key-property name="sameIdCode" column="ID_CD" />元素的列。
到businessRule对象的关联<key-many-to-one应该映射如下:
<composite-id name="businessRuleObjectId" class="BusinessRuleObjectId">
<key-many-to-one name="businessRule" class="BusinessRule" >
<column name="ID_CD" />
<column name="BUSINESS_RULE" />
</key-many-to-one>
</composite-id> Hibernate参考文档
5.1.7. composite-id
Components as composite identifiers
https://stackoverflow.com/questions/7070150
复制相似问题