Spring + Hibernate + Struts2  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
dfsilva
JavaBaby

Membro desde: 16/09/2006 22:30:58
Mensagens: 92
Offline

Bom dia pessoal,

Estou com um problema e ja procurei em varios lugares e até agora nao encontrei a solução, tomara que alguem aqui me ajude.

Bom o erro é o seguinte:
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: br.com.webnetworkmanager.model.Usuario.grupoCollection, no session or session was closed

Isso ocorre pq estou carregando um usuário e tento dar um getGrupos que é uma lista de grupos que está no bag do hibernate e como ele nao esta mantendo a sessao aberta ocorre este erro.

Separei meus arquivos de configuração do spring em 3 arquivos um para o struts outro para o dwr e outro para o data source e minhas classes de servico e daos.

os arquivos de configuração pertinentes abaixo para vcs olharem e verem se tem algo errado.

applicantioContext.xml


web.xml


abstraticSpringDao

UsuarioDao

usuarioService

[Email] [MSN]
joaodavidsr
Entusiasta Java

Membro desde: 13/01/2009 14:48:24
Mensagens: 22
Offline

Olá

Eu vejo duas saídas:

1 Pegar tudo que você precisa enquanto sessão está aberta;

2 Na nova sessão informar ao hibernate o objeto novamente.

Veja este post: http://blog.caelum.com.br/2006/11/01/transientobjectexception-lazyinitializationexception-e-outras-famosas-do-hibernate/
dfsilva
JavaBaby

Membro desde: 16/09/2006 22:30:58
Mensagens: 92
Offline

Acho que o spring gerencia a transação para mim, so queria saber como fazer isso. Fazer com que ele deixe a sessão aberta enquanto estou naquela transação.
Se alguem souber eu agredeço.
[Email] [MSN]
joaodavidsr
Entusiasta Java

Membro desde: 13/01/2009 14:48:24
Mensagens: 22
Offline

Olá

Desculpe, pensei que seu problema era o lazy entre sessões, para manter a sessão aberta no visão, coloque este interceptor no seu dispatcher.

dfsilva
JavaBaby

Membro desde: 16/09/2006 22:30:58
Mensagens: 92
Offline

Pessoal problema resolvido,

Os filtros do spring devem vir antes dos filtros do struts no tomcat no caso. E tambem eu tinha passado o nome do sesscionFactory incorreto para o parametro init do filtro no web.xml. Não precisei utilizar o interceptor. O OpenSessionInView está mantendo a sessão aberta para mim.

abraços
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team