Spring security - Illegal attempt to associate a collection with two open sessions

0 respostas
alandiniz

Eu tenho o projeto com Spring Security. então eu tenho um managedbean que pega o usuário quando loga..

@ManagedBean
@SessionScoped
public class UsuarioController {

    private Usuario usuario;
    private UsuarioDAO dao;
    private String novaSenha;

    public UsuarioController() {
        long t1 = System.currentTimeMillis();
        try {
            SecurityContext context = SecurityContextHolder.getContext();
            if (context instanceof SecurityContext) {
                Authentication authentication = context.getAuthentication();
                if (authentication instanceof Authentication) {
                    if (usuario == null) {
                        usuario = new Usuario();
                        usuario.setUsername(((User) authentication.getPrincipal()).getUsername());
                        dao = new UsuarioDAOImp();
                        usuario = dao.getUsuarioUsername(usuario.getUsername());
                    }
                }
            }
        } catch (Exception e) {
        }
        long t2 = System.currentTimeMillis();
        System.out.println("UsuarioController - construtor: " + (t2 - t1));
    }

blz, ai eu consigo exibir os dados dele na tela normal.. usuario.nome, usuario.email, etc...

ai eu tenho uma página pra atualiza os dados dele.. que chama o método:

public void salvar(){
            System.out.println("passo ak");
            dao.update(usuario);        
    }

ai da o seguinte erro:

javax.servlet.ServletException: org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions

org.hibernate.HibernateException: Illegal attempt to associate a collection with two open sessions

meu UsuarioDAOImp está assim:
@Override
    public void update(Usuario usuario) {
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        Transaction t = session.beginTransaction();
        session.update(usuario);
        t.commit();
    }

nao to entendedo esse erro de duas sessions associado a collection... nao entendi nada isso ai :(

Criado 13 de abril de 2012
Respostas 0
Participantes 1