Classe está como detached e não consigo excluir pelo Hibernate
4 respostas
M
marcoroberto
Bom dia pessoal, estou desenvolvendo um aplicativo com MyFaces + Hibernate 3.1.3 e quando estou tentando excluir um registro que está ativo em minha sessão estou recebendo a seguinte mensagem:
the detached instance passed to delete() had a null identifier
Verifiquei na documentacao do Hibernate e detached é um dos tres estados que um objeto pode estar e simplemeste resolveria utilizar um Lock, SaveOrUpdate… mas não está funcionando, reparei q se antes de eu Deletar der um session.persist(objeto) consigo excluir… mas acho q isso nao é o mais correto…
É porque você está tentando deletar um objeto que não foi persistido ainda. O erro é justamente este, the detached instance passed to delete() had a null identifier , quer dizer que ele está sem id. Tente setar um id que ja éxiste no banco nele e chame o metodo, provavelmente vai deletar.
Alberto
M
marcoroberto
Ola na verdade ele está persistido e possui ID, eu estou fazendo o seguinte no meu DataTable:
dai acontece o erro! será q pode ser outra coisa ?
T
transvaal
Deves tá tentando exluir um objeto que nem chegou a ser persistido.
M
marcoroberto
Então esse registro q tento excluir ja está persistido sim, eu na verdade faço o seguinte caminho em minha aplicação:
Pagina de Pesquisa > Seleciono o registro > Exibo o registro em um formulario > Pressiono o botão Excluir > Ocorre o erro
Um detalhe q esta me deixando meio confuso é q se antes de realizar o session.delete(obj) faço um session.persist(obj) ele persiste um novo objeto no banco e exclui o antigo…