0

以前は、これが「アクティビティ」テーブルをマップする方法です。このテーブルには、アカウントと連絡先テーブルにリンクする 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="ACCOUNT_ID"
/>

今、私は以下のようなテーブルを持っています ここに画像の説明を入力

このテーブルには ACCOUNT_ID と CONTACT_ID は格納されませんが、「Table_REF」と「REF_ID」に分離されています。たとえば、TABLE_REF = "Account" および REF_ID = 239 は、Account テーブルの Account_ID = 239 と同じです。

このテーブルをマップして、それらを区別してDAOで検索に使用できるようにする方法を誰か教えてもらえますか?

私を助けてください。前もって感謝します。

4

2 に答える 2

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>
于 2012-05-07T07:37:16.330 に答える