Hibernate - выберите существование один-ко-многим - PullRequest
0 голосов
/ 03 января 2012

В спящем режиме у меня есть объекты A и B. Существует один ко многим от A до B (A - Мне нужно написать запрос, в котором я могу выбрать A (плюскритерий) плюс дополнительный столбец, который отражает наличие или отсутствие какого-либо B для каждого A (с некоторыми дополнительными критериями для B)

Таким образом, может быть один A без B и другой A с 2 B.В этом случае я хочу вернуть 2 строки, по одной для каждого A с «нет» для первого и «да» для второго.Я не смущаюсь, что на самом деле означает «нет» и «да», просто я могу различить.

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

Как мне написать это на HQL?Возможно, мне нужна группировка по (но вы не можете группировать по сущностям, я думаю)?

Дополнительно : Мне также нужно ограничить B, которые являются релевантными, основываясь на некоторых условиях.1013 *

1 Ответ

1 голос
/ 03 января 2012

Одним из возможных решений является использование условия case:

select a, case when (a.bs is empty) then false else true end from A a

join с group by также можно использовать, но, как вы заметили, в зависимости от вашей СУБД вам может понадобитьсяПеречислите все свойства вашей сущности в group by предложении.

...