Erro ao Salvar em tabela n:n

0 respostas
J

Pessoal, bom dia!
Eu tenho uma tabela chamada PESSOA, uma chamada GRUPO e uma chamada PESSOA_HAS_GRUPO, de relacionamento n:n
Quando eu vou salvar na tabela PESSOA_HAS_GRUPO, está me acontecendo o seguinte erro:

Hibernate: delete from cerimonial.pessoa_has_grupo where pessoa_id=?
Hibernate: insert into cerimonial.pessoa_has_grupo (pessoa_id, grupo_id) values (?, ?)
Hibernate: insert into cerimonial.pessoa_has_grupo (pessoa_id, grupo_id) values (?, ?)
Hibernate: insert into cerimonial.pessoa_has_grupo (pessoa_id, grupo_id) values (?, ?)

Ele deleta uma linha e salva várias outras.
Porque isto está acontecendo?

Minhas configurações são as seguintes:

PESSOA

@ManyToMany(fetch = FetchType.LAZY)

@JoinTable(name = pessoa_has_grupo, schema=cerimonial,

joinColumns = {@JoinColumn(name = pessoa_id)},

inverseJoinColumns = {@JoinColumn(name = grupo_id)})

public Collection getGrupo() {

if (grupo == null)

grupo = new ArrayList();

return grupo;

}
GRUPO:

@ManyToMany(fetch=FetchType.LAZY)

@JoinTable(name=pessoa_has_grupo, schema=cerimonial,

joinColumns={@JoinColumn(name=grupo_id)},

inverseJoinColumns={@JoinColumn(name=pessoa_id)})	

public Collection getPessoa() {

return pessoa;

}
METÓDO QUE SALVA NA TABELA PESSOA_HAS_GRUPO:

public String salvarPessoaEGrupo() throws Exception {

try {

// Abre a sessão

Session sessao = HibernateUtil.getSessao();

// Inicia a Transação

HibernateUtil.iniciarTransacao();

// A variável p recebe o Objeto e o id do contato

Pessoa p = (Pessoa) sessao.get(Pessoa.class, getPessoa().getId());

Pessoa pessoa = new Pessoa();

pessoa = p;

Grupo g = (Grupo) sessao.get(Grupo.class, getGrupo().getId());

pessoa.getGrupo().add(g);

sessao.save(pessoa);

} finally {

HibernateUtil.commit();

HibernateUtil.fechar();

}

return SUCCESS;

}

Obrigado.

Criado 20 de março de 2009
Respostas 0
Participantes 1