代码之家  ›  专栏  ›  技术社区  ›  Dani

避免HQL查询WHERE子句中的空对象

  •  1
  • Dani  · 技术社区  · 15 年前

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

    选择Entity.Parent.ID=9的实体

    某些实体没有父级(entity.parent=null),n Hibernate无法运行此查询(queryException-无法解析属性)

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

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

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

    1 回复  |  直到 15 年前
        1
  •  2
  •   Darin Dimitrov    15 年前

    你错过了一个 from HQL查询中的子句。尝试这样重写:

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

    不确定,但可能是 entity.parent is not null 不需要零件。我想NHibernate会处理这种情况。