Объединение 4 таблиц в спящий режим - PullRequest
2 голосов
/ 13 декабря 2011

У меня есть 4 таблицы, которые участвуют в этом запросе.

Campaign - много в один бизнес

Business - один-много клиентов

Client -контакт один на один

Contact

В контакте есть поле contact_name, которое является уникальным.Мне нужно получить все campaigns, относящиеся к contact (через client и business), для которых campaign поле type равно 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

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Вы также можете выполнять собственные запросы SQL, используя createSQLQuery () метод Session.

Вы также можете использовать свойство Scalar, чтобы избежать накладных расходов при использовании ResultSetMetadata.
Вы можете найти больше информации об этом от здесь

1 голос
/ 13 декабря 2011

Я думаю, что должно работать следующее.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...