Нужна помощь в объединении 2 запросов HQL - PullRequest
0 голосов
/ 07 декабря 2011

Я просто не могу понять, как оптимизировать это в один запрос в HQL. В настоящее время у меня есть следующие 2 запроса HQL. Они оба возвращают результаты, которые я хочу, и я могу объединить эти результаты в C # и делать то, что мне нужно. Однако должен быть какой-то способ просто сгенерировать один запрос для возврата всех результатов. Все, что я пробовал до сих пор, либо просто генерирует ошибку, либо дает мне пересечение двух наборов результатов. Я уверен, что мне просто не хватает чего-то маленького. Спасибо.

SELECT u FROM UserImpl u INNER JOIN u.Friends f WHERE f.State = :state AND f.Gender = :gender
SELECT u FROM UserImpl u INNER JOIN u.Relatives r WHERE r.State = :state AND r.Gender = :gender

1 Ответ

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

Следующее должно работать, я думаю:

SELECT u FROM UserImpl u 
LEFT JOIN u.Friends f 
LEFT JOIN u.Relatives r 
WHERE f.State = :state 
AND (f.Gender = :gender OR r.Gender = :gender)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...