在hibernate中关联4个表

时间:2011-12-13 08:42:42

标签: java hibernate

我有4个表参与此查询。

Campaign - 多对一个企业

Business - 一对多客户

Client - 一对一联系

Contact

在联系中,字段contact_name是唯一的。我需要检索与campaigns相关的所有contact clientbusiness campaign字段type等于2。

使用hibernate执行此操作的最佳方法是什么?

在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

2 个答案:

答案 0 :(得分:2)

您也可以使用Session的 createSQLQuery()方法执行本机SQL查询。

您还可以使用标量属性来避免使用ResultSetMetadata的开销 您可以从here

找到有关此内容的更多信息

答案 1 :(得分:1)

我认为以下内容应该有效。

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