Erro Hibernate Annotations - org.hibernate.ObjectNotFoundException: No row with the given identi

0 respostas
thassiano

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!

Criado 23 de outubro de 2008
Respostas 0
Participantes 1