Éviter objet NULL dans la requête HQL clause where
-
13-09-2019 - |
Question
J'ai une entité qui pourrait avoir une entité mère. Je veux exécuter cette requête:
entité de sélection où entity.parent.id = 9
une partie de l'entité ne dispose pas de parents (entity.parent = null) et N HIBERNATE ne réussit pas à exécuter cette requête (QueryException - Impossible de résoudre la propriété)
Comment puis-je utiliser HQL pour obtenir toutes les entités qui a des entités parents avec id 9, en évitant ceux que le parent est nul?
(ajout entity.parent est non nulle avant la entity.parent.id = 9 résultats dans la même exception)
Il y a une possibilité d'utiliser une des instructions select imbriquées, mais je ne pense pas que ce soit la solution la plus efficace.
La solution
Il vous manque une clause de from
dans votre requête HQL. Essayez de le réécrire comme ceci:
from entity where entity.parent is not null and entity.parent.id = 9
Je ne sais pas, mais probablement la partie entity.parent is not null
n'est pas nécessaire. Je suppose que NHibernate va gérer ce scénario.