我希望我的查询,使用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,但是首先带来那些非null,然后按suspend和dateOut排序。
当我order by suspended and dateOut
时,它会执行内部联接并仅返回Usuarios where u.associado is not null
。
如何使用预期结果执行此hql?
由于
答案 0 :(得分:1)
HQL
会执行INNER JOIN
操作。
在您的Usuario
课程中,您可能拥有类型为associado
的媒体Associado
。
因此,当您指向associado对象的封装属性时,HQL应用INNER JOIN。
如果你想在associado为null时想要所有usuario对象,你为什么要在关联中输入有关封装信息的信息?
对我来说,你的查询将成为:
select u.nome
from Usuario u
where u.associado is null