Я хочу, чтобы мой запрос, используя hql, возвращал некоторые значения, упорядоченные по некоторым столбцам.
Проблема в том, что я order by
он автоматически выполняет внутреннее соединение. Пример:
Таблица Usuario имеет столбец idAssociado:
select u.nome
from Usuario u
order by u.associado desc,
u.associado.suspended asc,
u.associado.dateOut asc
Я хочу вернуть все записи из Usuario, даже если столбец associado (id) имеет значение NULL, но сначала приводит к тем, кто не является нулевым, а затем упорядочен с помощью suspend и dateOut.
Когда я order by suspended and dateOut
он выполняет внутреннее соединение и возвращает только Usuarios, where u.associado is not null
.
Как я могу выполнить этот hql с ожидаемыми результатами?
Спасибо
HQL
выполняет операцию INNER JOIN
если ваше свойство в вашем классе находится в объекте POJO.
В вашем Usuario
классе у вас есть, вероятно, свойство associado
с типом Associado
.
Поэтому, когда вы указываете свойство encapsuled объекта associado, HQL применяет INNER JOIN.
Если вы хотите, чтобы все объекты usuario, когда ассоциация была равна нулю, почему вы заказываете свою информацию об инкапсулированной информации в ассоциации?
Для меня вы получите запрос:
select u.nome
from Usuario u
where u.associado is null