1

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

选择 entity.parent.id = 9 的实体

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

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

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

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

4

1 回答 1

2

您的 HQL 查询中缺少一个from子句。尝试像这样重写它:

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

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

于 2009-12-07T12:36:49.910 回答