Hibernate: Diferenca no tratamento de FetchType.EAGER e FetchType.LAZY?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
kuchma
Moderador
[Avatar]

Membro desde: 17/01/2003 19:36:16
Mensagens: 1231
Localização: Curitiba - PR
Offline

Pessoal,

Estou com um problema esquisito aqui. Tenho dois relacionamentos 1-N numa classe. Se utilizo a estrategia de fetch FetchType.LAZY, a coisa funciona legal, se utilizo FetchType.EAGER parece que o Hibernate "se confunde". Provavelmente eu que confundi alguma coisa - mas nao consigo entender esse comportamento.

Em poucas palavras:

- Trazendo tudo com Query (FetchType.LAZY): OK
- Trazendo tudo com Query (FetchType.EAGER): OK
- Trazendo um objeto com Session.get (FetchType.LAZY): OK
- Trazendo um objeto com Session.get (FetchType.EAGER): Problema

Abaixo segue codigo das classes, tabelas geradas e a saida do teste:

Um cliente pode ter N carros e N imoveis:


Carro:


Imovel:


Programinha pra testar esse cenario:


Tabelas e dados apos rodar o teste (tudo OK):


Saida do programa utilizando a estrategia de fetch FetchType.LAZY (OK):



Saida do programa (apagando as tabelas), mas mudando o fetch para FetchType.EAGER (problema):



Se leu ate aqui, obrigado pela paciencia.

Onde esta o erro? Algum problema conceitual? O manual do Hibernate Annotations diz que eh incomum e nao recomenda mapear 1-N colocando a FK na mesma tabela do lado N, mas nao consegui entender o porque - parece algo tao normal .


Marcio Kuchma

E tu, Belém-Efrata, pequena demais para figurar como grupo de milhares de Judá, de ti me sairá o que há de reinar em Israel, e cujas origens são desde os tempos antigos, desde os dias da eternidade. Mq 5:2, Miquéias, 750 AC aprox.
[WWW] [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team