在HQL Query where子句中避免使用NULL对象

时间:2009-12-07 12:29:23

标签: nhibernate hql dbnull

我有一个可能有父实体的实体。 我想运行此查询:

选择entity.parent.id = 9

的实体

某些实体没有父(entity.parent = null)和N HIBERNATE无法运行此查询(QueryException - 无法解析属性)

如何使用HQL获取具有id为9的父实体的所有实体,避免使用父类为null的实体?

(在entity.parent.id = 9之前添加entity.parent不为null导致相同的异常)

可以选择使用嵌套的select语句,但我认为这不是最有效的解决方案。

1 个答案:

答案 0 :(得分:2)

您在HQL查询中缺少from子句。尝试重写它:

from entity where entity.parent is not null and entity.parent.id = 9

不确定,但可能entity.parent is not null部分不是必需的。我想NHibernate会处理这种情况。