Problemas com org.hibernate.NonUniqueObjectException

0 respostas
andre_a_s

Boa tarde :D

Tenho o seguinte método:

public void saveOrUpdate(EnquadramentoTecnico enquadramentoTecnico, boolean justCreated) {
	Transaction tx = null;
	EnquadramentoTecnicoDAO enquadramentoTecnicoDAO = new EnquadramentoTecnicoDAO();
	System.out.println("Save or update: " + enquadramentoTecnico);
	try {			
		Session session = enquadramentoTecnicoDAO.getSession();
		tx = session.beginTransaction();
		enquadramentoTecnicoDAO.saveOrUpdate(enquadramentoTecnico);
		tx.commit();					
		this.getRequest().getSession().setAttribute(Constants.SESSION_ATTRIBUTE_ENQUADRAMENTO_TECNICO, enquadramentoTecnico);	
		
		session.close();

	} catch (HibernateException e) {
		tx.rollback();
		System.out.println("Save failed.");
		e.printStackTrace();
		
	}
}
Em outro método, logo após chamar o método acima, faço o seguinte:
EnquadramentoTecnico enquadramentoTecnicoTemp = this.getEnquadramentoTecnicoInSession();
EnquadramentoTecnico enquadramentoTecnico = new EnquadramentoTecnico();

BeanUtils.copyProperties(enquadramentoTecnico, this);

enquadramentoTecnico.setId(enquadramentoTecnicoTemp.getId());
enquadramentoTecnico.setCronogramasLiberacao(enquadramentoTecnicoTemp.getCronogramasLiberacao());
enquadramentoTecnico.setCronogramasReembolso(enquadramentoTecnicoTemp.getCronogramasReembolso());

this.saveOrUpdate(enquadramentoTecnico, false);
O problema é que estou recebendo a seguinte Exception do Hibernate quando executo o método "this.saveOrUpdate(enquadramentoTecnico, false);" pela segunda vez:
org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.rural.beans.EnquadramentoTecnico#33]
Até entendo oq ela significa, mas nesse cenário não vejo sentido. Esta exception é lançada quando uso um objeto onde a sessão ou transação não foi finalizada, certo? Mas foi! Alguma sugestão? :roll:
Criado 8 de maio de 2007
Respostas 0
Participantes 1