HQL:按可空属性的属性排序

2024-03-27

假设有两个表,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_fkjava 实体(而不是表)上的属性为 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(使用前将#替换为@)

HQL:按可空属性的属性排序 的相关文章

随机推荐