Избегание нулевого объекта в предложении HQL Query where

StackOverflow https://stackoverflow.com/questions/1859696

  •  13-09-2019
  •  | 
  •  

Вопрос

У меня есть объект, у которого может быть родительский объект.Я хочу выполнить этот запрос:

выберите объект, где entity.parent.id = 9

у некоторой сущности нет родителей (entity.parent = null), и N HIBERNATE не удается выполнить этот запрос (исключение QueryException - не удалось разрешить свойство)

Как я могу использовать HQL, чтобы получить все объекты, у которых есть родительские объекты с идентификатором 9, избегая тех, у которых родительское значение равно null ?

(добавление entity.parent не равно null перед entity.parent.id = 9 приводит к тому же исключению)

Существует возможность использовать вложенные операторы select, но я не думаю, что это самое эффективное решение.

Это было полезно?

Решение

Вам не хватает from предложение в вашем запросе HQL.Попробуйте переписать это следующим образом:

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

Не уверен, но, вероятно, entity.parent is not null часть не является необходимой.Я полагаю, что NHibernate справится с этим сценарием.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top