2010-12-23 32 views
1

所以这是我的问题。我有这两张自己绘制的表格。我删除了一些其他字段,因为它们无关紧要。我需要Item和ItemAdminScrtyGrp之间的物品所有者之间的一对一映射。我已经包含了我将用来获取项目所有者的SQL。更改数据库模式不是一个选项。任何想法如何将映射的组合键的部分和非主要属性结合起来?使用复合键和非主属性的休眠一对一映射

Hibernate映射

<hibernate-mapping> 
<class name="Item"> 
    <composite-id class="ItemKey" name="itemKey" > 
     <key-property name="itemId" column="ITEM_ID" /> 
     <key-property name="revision" column="RVSN_ID" /> 
    </composite-id> 
</class> 
<class name="ItemAdminScrtyGrp"> 
    <composite-id name="key" class="ItemAdminScrtyGrpKey" > 
     <key-property name="securityProfileCode" column="SCRTY_PROF_CD" /> 
     <key-property name="itemId" column="ITEM_ID" /> 
     <key-property name="revision" column="RVSN_ID" /> 
    </composite-id> 
    <property name="securityLevelCode" column="SCRTY_LVL_TYP_CD" /> 
    <property name="ownerFlag" column="OWNR_FLG"/> 
</class> 
</hibernate-mapping> 

SQL

select SCRTY_PROF_CD from ItemAdminScrtyGrp grp 
join Item 
on grp.ITEM_ID = Item.ITEM_ID and 
    grp.RVSN_ID = Item.RVSN_ID and 
    grp.OWNR_FLG = 'y' 
where Item.ITEM_ID = 'abc' and Item.RVSN_ID = '123'; 

感谢您的帮助,您可以提供。

回答