Há como fugir d Lazy-Loading do Hibernate?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Grinvon
GUJ Master
[Avatar]

Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline



Tenho dois EM na aplicação, e quero pegar uma entidade de um e persistir no outro, só que dessa forma o hibernate não traz os objetos dependentes do objeto principal e então se eu persistir na outra base ele só persiste o objeto raíz.

Entidade A
Entidade B


A contêm vários B. Porém ao carregar A quero já automaticamente gravar seus dependentes em outro EM.

Têm como fugir do lazy nesse aspecto? Forçar o hibernate a carregar automaticamente todos os objetos dependentes e persistir tudo?

>> Inocêncio.
[MSN] [ICQ]
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

Se não me engano você pode fazer a anotação para EAGER no método também.

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
feltraco
JavaEvangelist
[Avatar]

Membro desde: 17/08/2007 14:22:17
Mensagens: 372
Localização: Foz do Iguaçu
Offline

tem sim... no mapeamento vc coloca

lazy="false"

acho que é isso...

Juliano Feltraco

[Email] [MSN]
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline

Use EAGER com cuidado

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
Grinvon
GUJ Master
[Avatar]

Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline

Isso mesmo pessoal, usando o fetch para EAGER.

Agora tenho que ver depois como ficará a performance, já que são duas bases de dados.

>> Inocêncio.
[MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Em vez de fazer direto na configuração, que vai fazer com que isso sirva pra todo mundo, faça isso em uma query separada só pra esse lugar que você vai usar, assim você não fica carregando sempre apenas quando necessário.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
Grinvon
GUJ Master
[Avatar]

Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline

Maurício Linhares wrote:Em vez de fazer direto na configuração, que vai fazer com que isso sirva pra todo mundo, faça isso em uma query separada só pra esse lugar que você vai usar, assim você não fica carregando sempre apenas quando necessário.


Usando NamedQuery por exemplo?

>> Inocêncio.
[MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Exatamente

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

mais precisamente, usando um eager fetch na query. falei sobre isso a poucos dias:
http://blog.caelum.com.br/2008/01/28/os-7-habitos-dos-desenvolvedores-hibernate-e-jpa-altamente-eficazes/

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Grinvon
GUJ Master
[Avatar]

Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline

Obrigado a todos, darei uma olhada aqui!

>> Inocêncio.
[MSN] [ICQ]
sidneicarneiro
What is classpath?

Membro desde: 13/08/2009 11:31:30
Mensagens: 9
Offline

Opa pessoa tudo blz? Dando um up aqui nessa thread pois estou com esse mesmo problema e tentei fazer com que carregasse o OneToMany pela NamedNativeQuery colocando no Select as duas tabelas que necessito que sejam carregadas só que mesmo assim não está carregando-a

a tab1 possui n tab2 (OneToMany) e é lazy pois carrego a tab1 em outros pontos da aplicação e não posso carregar também a tab2 pois deixará lento d+.

Estou fazendo da maneira correta? Não está funcionando e dá LazyInitializationException pois estou consumindo o EJB remoto utilizando XStream logo não tem como atualizar pelo "lazy loading".

Vlw
[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team