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';
感謝您的幫助,您可以提供。