我希望我的查询使用hql返回一些按某些列排序的值。
问题是当我order by
时它会自动进行内部联接。
例:
表Usuario的idAssociado列:
select u.nome
from Usuario u
order by u.associado desc,
u.associado.suspended asc,
u.associado.dateOut asc
即使列associado(id)为null,我也想从Usuario返回所有记录,但首先要带那些不为null的记录,然后按suspended和dateOut排序。
当我
order by suspended and dateOut
时,它会进行内部联接并仅返回Usuarios where u.associado is not null
。我如何才能以预期的结果执行此hql?
谢谢
最佳答案
如果您的类中的属性在POJO对象中,则HQL
执行INNER JOIN
操作。
在您的Usuario
类中,可能具有类型为associado
的属性Associado
。
因此,当您指向关联对象HQL的封装属性时,请应用INNER JOIN。
如果要在associado为null时使用所有usuario对象,为什么要按有关associado中封装信息的信息排序?
对我来说,您的查询将变为:
select u.nome
from Usuario u
where u.associado is null
关于mysql - 通过自动执行内部联接进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47782579/