E ai pessoal tudo bem!
Estou querendo evitar um problema de org.hibernate.LazyInitializationException
no meu projeto.
Esse projeto não é j2ee então não tem como eu usa a Annotation @PersistenceContext.
Minha duvida é a seguinte tenho uma entity chama FormaPagamento que é super classe de debito e credito , mas em credito tenho uma lista de parcela que esta com o fetch = lazy e o debito tem um pagamento mas essa esta com fetch = eager.
O problema é quando que quero pegar todas as FormaPagamento e somente nessa consulta trazer as parcelas do credito , dei uma olhada na documentação e vi o inner join fetch mas nao estou conseguindo utilizalo nesse meu escopo alguem pode me ajudar?
vou postar a query que estou usando.
SELECT tp
FROM FormaPagamento as forPag inner join forPag.tipoMovimentacao as tp
inner join tp.caixa as caixa
where caixa.competencia = ?1 and (forPag.typePagamento = ?2 or forPag.typePagamento = ?3 )
group by tp.idTipoMovimentacao
Observação:
Pessoal a classe TipoMovimentacao é uma classe abstrata que tem como sub-classes Entrada e Saida , a classe tem uma variavel de instancia para FormaPagamento que tem como sub-classe credito e debito.
Credito tem uma lista de Parcelas e cada parcela tem uma lista de pagamento.
Debito tem apenas um pagamento.
A estrategia do associação que estou usando para as supers classes é a:
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="TIPO_PAG",
discriminatorType=DiscriminatorType.INTEGER,length=2)
Obrigado.