首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在组合键hibernate xml中映射组合键

在组合键hibernate xml中映射组合键
EN

Stack Overflow用户
提问于 2011-08-16 04:06:39
回答 1查看 12.3K关注 0票数 2

这就是我想要做的,将一个对象映射到另一个具有相同主键的表。下面是一个示例,基本上我有一个具有组合键的对象,该对象具有另一个表的组合键,但我不知道如何包含这两个键才能创建正确的对象键。我突出显示了错误的行,它只包含键的一个属性。

代码语言:javascript
复制
  <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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-23 14:37:23

只包括复合外键businessRule的一个属性,因为<key-many-to-one只声明了一个列BUSINESS_RULE。它应该声明在您的示例中引用BUSINESS_RULEID_CD的组合键的两列。通过将ID_CD列添加到<key-many-to-one元素,您需要删除或重命名<key-property name="sameIdCode" column="ID_CD" />元素的列。

businessRule对象的关联<key-many-to-one应该映射如下:

代码语言:javascript
复制
<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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7070150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档