Hibernate e lazy loading

7 respostas
_fs

Olá pessoal, boa noite.

Seguinte: estou utilizando lazy loading, mas, para manter a sessão aberta até terminar o carregamento de todos os objetos, meu código está absolutamente macarrônico, e sai um cheiro ruim dele quando bate sol :expressionless:

Estou trabalhando no ambiente web, e estou com dificuldade para pensar numa solução decente, considerando que a primeira vez que eu utilizo as coleções (portanto, o momento em que elas vêm do banco) é na própria página. Por exemplo:

$pessoa.idiomas

Há alguma maneira chique de implementar isso?

Valeu povo :smiley:

ps.: estou usando Tomcat5.0.14 + WW2 + Hibernate2.1 + Velocity1.4

7 Respostas

Paulo_Silveira

Esse eh um dos motivos que nasceu o VRaptor, os pontos de interceptacao que um interceptor tem eh beforeChain, afterChain, e afterViewRendering. soh fecho o session no afterViewRendering

nao sei como fazer isso de maneira bonita com WW. smota? cv?

ricardolecheta

“Paulo Silveira”:
Esse eh um dos motivos que nasceu o VRaptor, os pontos de interceptacao que um interceptor tem eh beforeChain, afterChain, e afterViewRendering. soh fecho o session no afterViewRendering

nao sei como fazer isso de maneira bonita com WW. smota? cv?

Na demo de Hibernate WebWork no site do hibernate mostra um interceptor para fazer isso. Vc pode usar o lazy loading do hibernate sem problemas. Inclusive no código fonte tem um comentário assim:

// Note that all the cleanup is done
// after the view is rendered, so we
// have an open session in the view

Eduardo_Bregaida

Aonde posso pegar um tutorial legal de Hibernate e VRaptor?

Paulo_Silveira

O link que o lecheta ta falando eh esse:
http://wiki.opensymphony.com/display/WW/Chaining+Interceptor
Entao parece que o interception point do WW eh depois do render do view mesmo, entao ta ok. Eh soh criar um interceptor e abrir antes do invoke, fechar depois do invoke.

_fs

Beleza, muito obrigado pessoal :smiley:

M

E se for implementando com um Servlet Filter ?

jack_ganzha

Aí uma boa pedida seria usar algo como o Open Session in View. :wink:

valeuz…

Criado 16 de agosto de 2004
Ultima resposta 20 de ago. de 2004
Respostas 7
Participantes 6