gpt4 book ai didi

java - Hibernate,替换hql中的空值

转载 作者:行者123 更新时间:2023-11-30 04:34:05 25 4
gpt4 key购买 nike

如何在 HQL 中替换(或使用空值获取结果)空值?就我而言,SomeObject 可以为 null。我在 ClazzSomeObject 之间有多对一关系:

SELECT c.name, c.someObject.name from Clazz c

我已经尝试过:

SELECT c.name, coalesce(c.someObject.name, ' ') from Clazz c 

但它不返回任何行。

最佳答案

您可能需要注意,不存在“多对空”关系。如果在持久化 Clazz 实体时引用的对象 (SomeObject) 为 nullno 条目将被写入 SomeObject 数据库表。

然后,当您尝试访问查询中的(不存在的)SomeObject (c.someObject.name) 时,Hibernate 将隐式构建一个内部 join,这当然会排除有问题的 Clazz 对象,因为连接无法实现。

尝试显式使用 outer join ;这将解决您的问题。

顺便说一句:你可以让 hibernate output它生成的 SQL 语句,可以更好地理解给定查询为何以某种方式运行。

关于java - Hibernate,替换hql中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13920848/

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