Я знаю, как это выглядит в SQL, но мне нужно это в HQL, и я застрял - PullRequest
0 голосов
/ 26 января 2012

Предположим, у меня есть такой запрос SQL:

SELECT t1.* FROM table1 t1 LEFT JOIN table2 t2 ON t1.table2_id = t2.id
WHERE t2.value = 'something' OR t1.value = 'something';

Мне нужно сделать то же самое в запросе HQL.Дополнительная информация: скажем, у меня есть классы Table1 и Table2 , оба поля с именами value и Table1 , имеющие поле table2 класса Таблица2 .Я хочу получить список Table1 объектов, которые имеют определенное значение или его член table2 имеет определенное значение , и я знаю, что table2 поле может быть нулевым.

Я попытался сформулировать вопрос настолько четко, насколько мог, не пытаясь объяснить каждый способ, которым я пытался сделать это без успеха.Извините, если не очень понятно.

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Рабочий пример:

select t1 from Table1 as t1 left outer join t1.table2 as t2
where t1.value = :value or t2.value = :value

Дополнительное примечание: при использовании grails необходимо использовать метод executeQuery , так как findAll будет недостаточно.

Могут быть и другие решения, которых я не знаю.Если вы хотите поделиться лучшим решением, пожалуйста, сделайте.

0 голосов
/ 26 января 2012

Исходя из описания проблемы в вопросе, я предполагаю, что у вас есть родительский класс Table1 и дочерний класс Table2.Table1 имеет член table2 типа Table2.В этом случае, я считаю, соответствующий HQL должен выглядеть следующим образом:

from Table1 t1 where t1.value = 'something' or t1.table2.value = 'something'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...