Избегание объекта NULL в HQL Query where
У меня есть объект, который может иметь родительский объект. Я хочу выполнить этот запрос:
выберите сущность, где entity.parent.id = 9
некоторые из сущностей не имеют родителей (entity.parent = null) и N HIBERNATE не в состоянии выполнить этот запрос (QueryException - Не удалось разрешить свойство)
Как я могу использовать HQL, чтобы получить все сущности, у которых есть родительские сущности с идентификатором 9, избегая тех, у которых родитель имеет нулевое значение?
(добавление entity.parent не равно нулю до того, как entity.parent.id = 9 приведет к тому же исключению)
Существует возможность использовать вложенные операторы select, но я не думаю, что это наиболее эффективное решение.
1 ответ
Вам не хватает from
предложение в вашем HQL-запросе. Попробуйте переписать это так:
from entity where entity.parent is not null and entity.parent.id = 9
Не уверен, но, вероятно, entity.parent is not null
часть не нужна. Я полагаю, NHibernate справится с этим сценарием.