我希望我的查询使用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/

10-09 00:53