Duvida com Lazy em Query Poliformicas[Resolvido]

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.

Olhe esse post: Quatro soluções para LazyInitializationException

Não sei se entendi direito o seu problema, mas da forma que você está fazendo a query não vai conseguir fazer o fetch join porque sua consulta parte de um objeto FormaPagamento, e essa classe não possui a lista de parcelas. A solução que vejo é você tratar o objeto da consulta diretamente como Credito, aí você conseguirá fazer o fetch join da lista de parcelas.

Vinicios e Hebert!

Valeu pela a ajuda , entre ontem e hoje estava pesquisando sobre o assunto e ja vi que não vai dar para fazer da forma que eu queria!

Vou criar um query para credito e fazer o fetch.

Estou lendo tambem os post do site do herbert!

valeu pessoal.