Pessoal,
Estou implementando um CRUD com hibernate annotations, as operações listar, incluir, alterar estão funcionando ok. Contudo o deletar está apresentando o seguinte erro:
br.cesed.lti.cesuweb.dao.util.DataAccessLayerException: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [br.cesed.lti.cesuweb.beans.Usuario#19]
br.cesed.lti.cesuweb.dao.AbstractDao.handleException(AbstractDao.java:101)
br.cesed.lti.cesuweb.dao.AbstractDao.delete(AbstractDao.java:61)
br.cesed.lti.cesuweb.dao.UsuarioDao.delete(UsuarioDao.java:41)
Tenho um mapeamento ManyToOne, entre Usuário e Perfil. A coluna id_perfil da tabela usuário é uma foreign key para o id da tabela perfil. Já li algumas coisas na Internet, mas não consegui resolver. O mapeamento na tabela usuário segue abaixo, não há mapeamento no Perfil para essa associação.
@ManyToOne
@JoinColumn(name = "id_perfil")
private Perfil perfil;
O erro ocorre quando tento deletar o usuário (o perfil não é deletado) com um método deletar abaixo:
public String delete(Object obj) throws Exception {
Session session = openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.delete(obj);
tx.commit();
} catch (Exception e) {
if (tx != null)
tx.rollback();
throw new Exception(Constants.REMOVE_ERROR);
} finally {
session.flush();
session.close();
}
return Constants.REMOVE_SUCESS;
}
Desde já agradeço!