XML hibernate中的复合键与第二个表

时间:2011-07-25 16:15:17

标签: java hibernate

首先,我无法控制技术或数据库结构。

我有一个对象,它有另一个对象,因为它是复合键。在该复合id对象中,我有一个列,我需要使用它来获取另一个值,特别是描述。我希望能够在拉动对象时检索与此键绑定的描述。这是我目前所拥有的(名称改为保护无辜者):

  <class name="BusinessRuleObject" table="BUSINESS_RULE_OBJECTS" schema="DB">
    <composite-id name="businessRuleObjectId" class="BusinessRuleObjectId">
      <key-property name="idCode" column="ID_CD" />
      <key-many-to-one name="businessRule" class="BusinessRule" column="BUSINESS_RULE" />
    </composite-id>
    <property name="updateDate" column="UPDATE_DT" type="timestamp" />
    <property name="updateUser" column="UPDATE_USER_ID" />
  </class>

  <class name="BusinessRule" table="BUSINESS_RULE_LOOKUP" schema="DB">
    <id name="businessRuleCode" column="BUSINESS_RULE"></id>
    <property name="description" column="DESCRIPTION_TX" />
    <property name="updateDate" column="UPDATE_DT" type="timestamp" />
    <property name="updateUser" column="UPDATE_USER_ID" />
  </class>

我在这里要做的是:

  • 获取“BusinessRuleObject”
  • 能够调用类似BusinessRuleObject.businessRule.description
  • 的内容

如果不清楚,第一个表(对象)有两个键,一个idCode和businessRule。第二个有一个键,businessRule。

感谢您的帮助,这似乎是一个简单的问题,现在无法绕过它。

1 个答案:

答案 0 :(得分:0)

如果您已经检索了BusinessRuleObject,那么您已经拥有了它(如果映射工作正常)。得到价值:

BusinessRuleObject bo = ....;
String description = bo.businessRule.description; // Or appropriate getters

如果您只想获得某些对象的描述,那么 与此类似的HQL应该有效:

select bo.businessRule.description from BusinessRuleObject bo 
                                   where [ your bo criteria ]