首先,我无法控制技术或数据库结构。
我有一个对象,它有另一个对象,因为它是复合键。在该复合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>
我在这里要做的是:
如果不清楚,第一个表(对象)有两个键,一个idCode和businessRule。第二个有一个键,businessRule。
感谢您的帮助,这似乎是一个简单的问题,现在无法绕过它。
答案 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 ]