Evitare oggetto NULL in HQL query clausola where
-
13-09-2019 - |
Domanda
Ho un soggetto che potrebbe avere un'entità padre. Voglio eseguire questa query:
selezionare un'entità in cui entity.parent.id = 9
alcune delle entità non ha i genitori (entity.parent = null) e N HIBERNATE non riesce a eseguire questa query (QueryException - Impossibile risolvere proprietà)
Come posso utilizzare HQL per ottenere tutte le entità che ha i genitori entità con id 9, evitando quelli che il genitore è nullo?
(aggiungendo entity.parent non è nullo prima della entity.parent.id = 9 risultati nella stessa eccezione)
C'è la possibilità di utilizzare un istruzioni SELECT nidificate, ma non credo che questa è la soluzione più efficiente.
Soluzione
Ti manca una clausola from
nella query HQL. Provare a riscrivere in questo modo:
from entity where entity.parent is not null and entity.parent.id = 9
Non è sicuro, ma probabilmente la parte entity.parent is not null
non è necessario. Suppongo che NHibernate gestirà questo scenario.