Упорядочить по атрибуту связанных объектов, когда FK связанного объекта может быть нулевым? - PullRequest
0 голосов
/ 14 марта 2012

У меня есть таблица, которая связана с другой таблицей с полем внешнего ключа, а само поле может иметь значение NULL.Это означает, что строка в первой таблице может иметь или не иметь соответствующую строку в другой.

Ради простоты назовем первую таблицу Foo, а вторую Bar.

* 1006.* Теперь, когда я запрашиваю строки из Foo и пытаюсь упорядочить их по полю из Bar следующим образом:
FROM Foo ORDER BY Bar.name

В результате отображаются только эти значения из Foo, где поле bar_idне является нулевымКаков наилучший возможный способ также включить эти строки из Foo, которые не имеют соответствующей строки в Bar.

В настоящее время у меня есть большой и неаккуратный метод, который принимает значения от filterMap и sortMapи добавляет их к StringBuffer, в результате чего возникает запрос HQL.

Я что-то слышал о Criteria API, но не знаю, может ли это помочь мне преодолеть эту ситуацию.

1 Ответ

1 голос
/ 14 марта 2012

Вам просто нужно сделать левое соединение, а не внутреннее:

select foo from Foo foo left join foo.bar bar order by bar.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...