Hibernate映射-多对一关系
以前,我是这样映射我的活动表的。此表存储链接到ACCOUNT和CONTACT表的CONTACT_ID和ACCOUNT_ID。 这样Hibernate映射-多对一关系,hibernate,hibernate-mapping,many-to-one,Hibernate,Hibernate Mapping,Many To One,以前,我是这样映射我的活动表的。此表存储链接到ACCOUNT和CONTACT表的CONTACT_ID和ACCOUNT_ID。 这样 <many-to-one name="accountObj" class="my.com.miramax.crm.account.db.Account" not-null="false" not-found="ignore" insert="false" update="false" column="A
<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中使用它进行搜索
请帮帮我。提前感谢。您可以尝试以下映射-- 这将根据相应表中是否存在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>
对我来说,这听起来像是一个典型的例子。我刚开始使用hibernate,我看不到任何地方可以在我的hbm.xml中应用查询,你能告诉我更多细节吗?非常感谢。非常感谢,我可以知道如何在DAO中应用referenceObj create by吗?我想进行搜索,以筛选Account表。通常我可以在DAO中这样做-criteria.createAliasCostCentre.PROP_CONTACT_OBJ,CostCentre.PROP_CONTACT_OBJ,criteria.LEFT_JOIN;
<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>