Pergunta

Eu tenho uma entidade que pode ter uma entidade pai. Eu quero executar esta consulta:

select entidade onde entity.parent.id = 9

alguma da entidade não tem pais (entity.parent = null) e N HIBERNATE falha para executar esta consulta (QueryException - não poderia propriedade resolver)

Como posso usar HQL para obter todas as entidades que tem pais entidades com id 9, evitando os que o pai é nulo?

(adicionando entity.parent não é nulo antes de os entity.parent.id = 9 resulta no mesmo excepção)

Há uma opção para usar uma instrução SELECT aninhadas, mas eu não acho que esta é a solução mais eficiente.

Foi útil?

Solução

Está faltando uma cláusula from na sua consulta HQL. Tente reescrevê-lo como este:

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

Não tenho certeza, mas provavelmente a parte entity.parent is not null não é necessário. Suponho NHibernate irá lidar com este cenário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top