Problema com OpenSessionInView  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline

Olá...

Estou usando OpenSessionInView e ele está resolvendo quase todos os problemas com Lazy Initialization Exception.

Exceto em um caso, quando pagino o resultado de uma busca.

Situação:

Quando efetuo a busca obtenho resultado ok com todas coleções que estão definidas como lazy obtidas atraves OSIV

quando uso a paginacao do richfaces (rich:datascroller), tento acessar a segunda pagina do resultado da busca a Lazy Initialization Exception é disparada, pois a sessão ja está fechada, sendo assim OSIV nao consegue obter as coleções lazy

Alguem faz ideia de como posso resolver este problema?
[MSN]
Felagund
GUJ Master
[Avatar]

Membro desde: 26/07/2006 11:51:36
Mensagens: 1732
Localização: Santa e Bela Catarina
Offline

se tiver usando mapeamentos xml adiciona no .hbm.xml dos seus Beans em cada uma das collection o atributo lazy="false" vai dar uma carga extra na sua aplicação mas não vai dar erro.

ou ideia é na camada DAO, no metodo por exemplo getWithCollection()

vc faz um JOIN que não tera problemas



lembre-se de adicionar o select pois se não for selecionado ele retornará um HashMap.

[]'s

att
Rafael Felix

Rolling With Code
Twitter
[WWW]
DirceuSobrinho
JavaChild
[Avatar]

Membro desde: 21/01/2007 08:49:02
Mensagens: 139
Localização: Maceió - AL
Offline

estou com problemas de performace lazy=false, aumenta meu problema =/

no caso do join, é melhor que o lazy=false, no entanto, nao me agrado mt.

pois tenho varias consultas como essa:

e se eu utilizar join terei que adicionar nesses metodos o FetchMode.JOIN, ficando o metodo assim: [ficando algo parecendo um lazy=false]


onde estarei carregando os objetos desnecessariamentes, pois como pagino o resultado em 10 e 10.
com o join carregarei logo os 100 objetos, ja com o OSIV vou carregando a medida que o usuário for avançado.

O que eu gostaria mesmo de saber, é se tem como OSIV manter a sessão aberta em algumas paginas espeficicas, no caso, as de resultado de busca!

Att. Dirceu
[MSN]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team