quarta-feira, 17 de agosto de 2011

Como fazer JOIN em HQL - Hibernate

Quando houver o relacionamento de um objeto com uma lista de outro tipo de objeto, muitas vezes precisamos fazer verificações entre o objeto e todos os itens da lista relacionados com ele.

Observe o relacionamento entre as classes abaixo:


1 Conta - X Parcelas

Vamos ver um exemplo onde fazemos esta ligação:

SELECT c FROM Conta c JOIN c.parcelaList as cParcelaList WHERE cParcelaList.vencimento < :hoje AND cParcelaList.statusparcela != 'P' AND c.statusconta != 'C' GROUP BY c.codigo ORDER BY c.cliente.nome ASC
A instrução
JOIN c.parcelaList as cParcelaList
cria um objeto temporário do tipo Parcela, neste caso, denominado "cParcelaList", para cada item da lista de parcelas. Desta forma, basta realizar as comparações com este objeto:
cParcelaList.statusparcela != 'P'

Nenhum comentário:

Postar um comentário