之前,这是我如何映射我的“活动”表。此表存储CONTACT_ID和ACCOUNT_ID,链接到Account和Contact表。
以这种方式
<many-to-one
name="accountObj"
class="my.com.miramax.crm.account.db.Account"
not-null="false"
not-found="ignore"
insert="false"
update="false"
column="ACCOUNT_ID"
/>
现在我有一张如下表格
此表不存储ACCOUNT_ID和CONTACT_ID,但它分为“Table_REF”和“REF_ID”。例如,TABLE_REF =“Account”和REF_ID = 239与Account表中的Account_ID = 239相同。
任何人都可以告诉我如何映射此表,以便我可以区分它们并在DAO中使用它进行搜索?
请帮帮我。提前谢谢。
答案 0 :(得分:0)
您可以尝试以下映射--- 这将根据相应表中是否存在ID来填充它。您可以使用以下查询正确加载数据。
"from Activity activity left outer join activity.account ac with tableref='Account' left outer join activity.contact con with tableref='Contact'"
------------
<many-to-one name="account"
column="REF_ID"
insert="false"
update="false"
lazy="no-proxy"
not-found="ignore"
>
</many-to-one>
<many-to-one name="contact"
column="REF_ID"
insert="false"
update="false"
lazy="no-proxy"
not-found="ignore"
>
</many-to-one>
答案 1 :(得分:0)
对我来说,这听起来像是<any>
的典型案例:
<any name="referenceObj" id-type="long" meta-type="string">
<meta-value value="Account" class="my.com.miramax.crm.account.db.Account"/>
<meta-value value="Contact" class="..."/>
<column name="TABLE_REF"/>
<column name="REF_ID"/>
</any>