Bom dia a todos.
Estou com problemas quando tento excluir algum objeto após ter salvo ou alterado algum coisa antes!
o erro que esta acontecendo é:
Caused by: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [Objeto#18]
Sei que é problema com a sessão, que provavelmente o mesmo objeto esteja em alguma outra sessão. Só nao sei como resolver.
Segue meus códigos para salvar e deleter
public Object salvar(Object objeto) throws Exception {
try {
session = ConexaoManager.instance().getSession();
tx = session.beginTransaction();
Object obj = session.merge(objeto);
session.merge(this.getLog(obj, Monitoramento.INSERTORUPDATE)); // Gera log da operação
tx.commit();
return obj;
} catch (PersistentException ex) {
tx.rollback();
ex.printStackTrace();
throw new Exception(ex);
} finally {
// session.flush();
// session.close();
}
}
public void excluir(Object objeto) throws Exception {
try {
session = ConexaoManager.instance().getSession();
session.evict(objeto); // remove objeto da cache
tx = session.beginTransaction();
session.delete(objeto);
session.merge(this.getLog(objeto, Monitoramento.DELETE)); // Gera log da operação
tx.commit();
} catch (PersistentException ex) {
tx.rollback();
ex.printStackTrace();
throw new Exception(ex);
} finally {
// session.flush();
// session.close();
}
}
Ja tentei fechar a sessao após cada operacao de gravacao, exclusão e até mesmo em meus filtros, mas mesmo assim nao deu certo!
Se alguém puder me ajudar!
Júlio