Hibernate HQL: dois níveis de junções
Pergunta
Eu sou novo para HQL e tem as seguintes relações de tabela:
-
Term
tem muitasDefinitions
-
Definition
tem muitasDefinitionProducts
-
DefinitionProducts
tem umaProduct
Eu quero obter a lista de Terms
que ter pelo menos um Definition
que tem pelo menos um DefinitionProduct
que tem um Product
específica
Esta é a minha melhor tentativa (em Grails):
Term.findAll("from Term t, Definition d inner join t.definitions def,
def.definitionProducts dp where ? = some elements (dp.product)",
Product.get(1))
Com o acima, eu recebo um "def.definitionProducts não está mapeada" exceção.
Solução
selecione t a partir Term t juntar t.definitions def juntar def.definitionProducts dp onde dp.product =?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow