gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:00:21 29 4
gpt4 key购买 nike

假设有两个表,A[a_id, b_id]B[b_id,c] .

我需要执行表单 "From A a ORDER BY a.b.c" 的 HQL 查询, 而 b在类 A 中可以为空.

但是,该查询仅返回 A 的实例有非空 b属性(property)。
发生这种情况是因为 Hibernate 生成形式为 "SELECT FROM A,B WHERE A.b_id = B.b_id ORDER BY B.c" 的 SQL

返回A的所有实例的方法是什么?与那些拥有 nullb首先/最后出现?

最佳答案

关于什么 :

from A a left join a.b_fk b order by b.c

左连接负责进行连接,即使 b_fk java 实体(不是表)上的属性为空。

已编辑 : 抱歉,我提到过以不同方式对空值进行排序。要排序(不考虑空值),您可以指定 'desc' 来反转排序顺序(默认 = 'asc')。对于空值,我相信 Hibernate 允许默认数据库顺序......在您的数据库上自己尝试看看会发生什么(抱歉在第一版帖子中误导)。

在 Hibernate 的引用文档中可以找到很多信息:
http://docs.jboss.org/hibernate/stable/core/reference/en/html/queryhql.html

其余的通常取决于您使用的数据库......

关于HQL:按可为空属性的属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1272738/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com