Erro ao gravar objeto no BD com Hibernate

1 resposta
vinny767

Pessoal,

Após procurar em vão no google e no forum por uma solução para o meu problema, resolvi postar esse topico.
Estou com o seguinte problema:

Eu tenho um objeto do tipo Usuario chamado usuarioBase.
usuarioBase tem uma lista de Irmaos
Tenho um segundo objeto chamado usuario que eu preciso adicionar na lista de irmaos do usuarioBase e tenho que atualizar no banco o usuarioBase.

Quando tento atualizar o usuarioBase, dá erro (Hibernate Exception: Illegal attempt to associate a collection with two open sessions)
Tentei, para testar, gravar apenas o objeto usuario. Gravou perfeitamente. Mas se tento atualizar o usuarioBase já com a lista alterada, ocorre este erro.

Segue o código:

public String cadastrar() throws Exception{
		Long id = Long.parseLong(this.idUsuario);
		Usuario usuarioBase = Progenes.obtemUsuario(id);
		
		if(this.tipoParente.equals("irmao")){
			usuario.setSexo("M");
			usuario.setNivel(10);
			usuario.setFamilia(usuarioBase.getFamilia());
			usuarioBase.getListaDeIrmaos().add(this.usuario);
			Registry.getUsuarioRepository().atualizar(usuarioBase);
		}
		
		this.tituloMensagem = "Cadastro realizado com sucesso";
		this.linkCadastro   = "prepararCadastrarUsuario.action";
		this.linkFiltro     = "prepararConsultarUsuario.action";
		this.mensagem       = "Cadastro de Usuário realizado com sucesso.";

		return OK;
	}

O que pode ser?

1 Resposta

Mero_Aprendiz

Olá…
Já que grava a primeira vez, e dá problema na atualização, veja se a sessão que você gravou o usuário ainda está aberta.

[]'s
JL

Criado 4 de março de 2009
Ultima resposta 4 de mar. de 2009
Respostas 1
Participantes 2