Избегание нулевого объекта в предложении HQL Query where
-
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 справится с этим сценарием.