hql - 如何在 Hibernate 中仅获取不为 null 的属性

标签 hql jpql

在 Hibernate 查询中,如何检查属性是否为 null?根据结果​​,我想获取该属性,如果它不为空,我必须获取另一个属性。

最佳答案

以下两种方式都是有效的 HQL 查询,并且都是有效的 JPA 2.0 JPQL 查询。

使用合并(返回第一个非空值,如果两者都为空则返回空值):

SELECT coalesce(e.property, e.otherProperty) FROM SomeEntity e

等效的 select-case,但更长一些:

SELECT CASE WHEN e.property IS NULL THEN e.otherProperty ELSE e.property END 
FROM SomeEntity e

关于hql - 如何在 Hibernate 中仅获取不为 null 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13547688/

相关文章:

java - 为什么 Hibernate 的 createQuery 和 createCriteria 返回不同数量的对象?

c# - NHibernate GroupBy 和 Sum

Java:JPQL 日期函数将时间段添加到另一个日期

java - 如何在 EclipseLink JPQL 查询中指定架构?

java - 左连接两个与 JPQL 无关的表

hadoop - hql查询报错

grails - 使用条件,如何在Grails GORM中基于max(column)获取结果列表

java - 由于 eclipselink 2.5.2 中的 JPQL 语句引发无效查询键,但在 2.3.2 中有效

java - 如何计算 QueryDSL 中结果组的数量?

java - HQL 从多个表中选择