Correção do LazyLoad no BlazeDS  XML
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Autor Mensagem
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Olá pessoal,

Postei um tópico no meu blog com o Hibernate modificado. Assim, não tendo mais problemas com o Lazy. Pelo que testei, funcionou redondo!

http://javaflex.wordpress.com

Façam bom uso! Obrigado!
Andre Brito
JWizard

Membro desde: 21/07/2007 17:44:31
Mensagens: 2485
Localização: Paraná
Offline

Boa... Muito bem escrito

Pelo que eu entendi o problema tem um 'centro': a LazyInitiationException, certo? Se for, o nome do padrão pra resolver isso é o Open Session in View (se não me falha a memória). No site do Hibernate, eles colocam a solução, mas achei de certa forma complexa. O Paulo Silveira já escreveu no blog da Caelum sobre esse problema.

De qualquer forma, 10 pra você :p Tá contribuindo muito com a comunidade de Flex do país.

Abraço!

This message was edited 1 time. Last update was at 24/11/2009 11:06:22


Como organizar o GUJ.
Meu Twitter.
Meu blog.
Future proofing means making code easy to change, not trying to anticipate every possible way your code might need to change.
[WWW]
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Opa André,

Nesse caso, implementar a Open Session In View usando o BlazeDS me cheira arriscado, pois o risco de deadlock em produção seria alto. Usando o Blaze.

A grande questão é o tipo de retorno do Hibernate em objetos lazy. Ele retorna o tipo que herda de AbstractPersistentCollection, então o BlazeDS volta ao Hibernate e pergunta quem é aquele objeto, como não tem sessão aberta, estoura a exceção.

A grande questão é que todas as formas de solução que vi (dpHibernate, etc) não são legais. Você tem que fazer certas coisas que bem, não são boas mesmo pro projeto.

Ja essa é bem mais fácil, só substituir o JAR do Hibernate. Lá embaixo tem o link tanto com o source uqanto com o JAR. Agora um problema que notei e vou pesquisar mais tarde se tem a ver a minha solução é usa-la juntamente com o Hibernate-Annotations. Um usuário me reportou uma exceção, não sei se tem a ver (aparentemente não), mas vou verificar. Mas usando mapping com hbm normal, etc, não gerou nenhum erro.

[]'s e obrigado!
henrique.marino
Thread.start()

Membro desde: 29/09/2009 18:12:26
Mensagens: 37
Offline

Opa AUser, blz?

Não sei se entendi bem, mais você mudou as classes do Hibernate para quando um relacionamento for lazy voltar nulo?

[]s,


Henrique F. Marino

www.dclick.com.br
blog.dclick.com.br
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Exato. Quando o lazy == true, ele retorna Null no atributo.

Bom, eu não vi nada de errado nisso ainda, rs. Você consegue enxergar algo negativo aí?

E bem, funcionou usando também o HibernateAnnotations. No entanto foi preciso compilar ele na versão 3.5.0. Já que não existe pré-compilado no site do Hibernate.

Se alguém quiser usar uma versão mais antiga que a 3.5.0 é só baixar o código e modificar as classes que listei no blog, vai dar o mesmo resultado.
[]'s

This message was edited 1 time. Last update was at 07/12/2009 22:37:23

humbertopatrick
Entusiasta Java

Membro desde: 10/10/2007 14:10:52
Mensagens: 19
Offline

Olá,

Eu tenho uma solução para esse problema de lazy é só utilizar esse componente http://sourceforge.net/projects/setlazynull/
Ele irá fazer isso automatico setando null aonde estiver com lazy nas suas classes.
kweles
JavaBaby

Membro desde: 12/03/2010 10:34:11
Mensagens: 89
Offline

Olá Humberto!

Fiquei muito interessado neste componente, pois estou com o problema do lazy loading e precisei criar uma servlet devolvendo xml e etcc...

Baixei o componente, contudo não encontrei nenhuma documentação ou exemplo de como utilizar, vc poderia indicar algum site que explica ou
como faço para utilizaá-lo?

Obrigado!

Analista de Sistemas
 
Índice dos Fóruns » RIA - Flex, JavaFX e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team