假设有两个表,A[a_id, b_id]
and B[b_id,c]
.
我需要执行表单的 HQL 查询"From A a ORDER BY a.b.c"
, while b
在类中可以为空A
.
但是,该查询仅返回以下实例A
其中有非空b
财产。
发生这种情况是因为 Hibernate 生成以下形式的 SQL"SELECT FROM A,B WHERE A.b_id = B.b_id ORDER BY B.c"
返回所有实例的方法是什么A
与那些有null
in b
首先/最后出现?
关于什么 :
from A a left join a.b_fk b order by b.c
左连接负责进行连接,即使b_fk
java 实体(而不是表)上的属性为 null。
Edited:抱歉,我提到了对空值进行不同的排序。要排序(不考虑空值),您可以指定“desc”来反转排序顺序(默认=“asc”)。对于空值,我相信 Hibernate 让默认数据库顺序...在您的数据库上亲自尝试一下,看看会发生什么(很抱歉在帖子的第一个版本中产生误导)。
在 Hibernate 的参考文档中可以找到很多信息:
http://docs.jboss.org/hibernate/stable/core/reference/en/html/queryhql.html http://docs.jboss.org/hibernate/stable/core/reference/en/html/queryhql.html
其余的通常取决于您使用的数据库......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)