2011-12-13 150 views
2

我有4個表參與此查詢。休眠4表的關聯

Campaign - 多對一業務

Business - 一對多客戶

Client - 一對一接觸

Contact 

在接觸時,現場contact_name這是獨一無二的。我需要檢索所有campaigns相關contact(通過clientbusiness),這campaigntype等於2

什麼是休眠做到這一點的最好方法是什麼?

在SQL是看起來像這樣:

select * 
from campaign,contact, business, client 
where campaign.type=2 
and client.contact_id = contact.contact_id 
and contact.name = 'Josh' 
and client.business_id = business.business_id 
and campaign.campaign_id = business.business_id 
+0

找到更多的信息這些表格之間的關係是否已經配置了xml或註解或者是問題的一部分? – flesk

+0

我正在使用註釋,並且我確實宣佈了一對多對多等,但是,我需要一個有效的解決方案來檢索結果 – Dejell

回答

1

我認爲以下應工作。

from Compaign where Compaign.type=2 and compaign.business.client.contact.contact_name=:name

+0

它是推薦的方式嗎?不通過任何連接? – Dejell

+0

「連接」是什麼意思? –

+0

db之間的關係 – Dejell

2

可以執行過使用createSQLQuery()方法本地的SQL查詢會議方法。

您還可以使用標量屬性來避免使用ResultSetMetadata的開銷。
你可以從here