| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2006 12:13:12
|
kuchma
Moderador
![[Avatar]](/images/avatar/85422afb467e9456013a2a51d4dff702.jpg)
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. |
|
|
 |
|
|
|
|
|
|