Fórum Erro ao tentar Persistir uma entidade. #394262

24/01/2011

0

O prolema é quando eu tento persistir uma entidade, com esta entidade previamente preenchida, o trecho principal do erro é o seguinte:   SEVERE: Servlet.service() for servlet Faces Servlet threw exception org.hibernate.PersistentObjectException: detached entity passed to persist: br.org.isgh.compras.beans.Recebimento o código para persistir: try { // INICIA A TRANSAÇÃO em.getTransaction().begin(); //setando os itens no recebimento recebimento.setRecebimentoItem(recebItens); //persistindo o recebimento e seus itens em.persist(recebimento); em.getTransaction().commit(); em.refresh(recebimento); } catch (RuntimeException e) { e.printStackTrace(); if (em.getTransaction().isActive()) em.getTransaction().rollback(); throw e; } finally { em.close(); }
Barcelos.java

Barcelos.java

Responder

Posts

24/01/2011

Robson Teixeira

Olá Barcelos

  esse erro ocorre muitas vezes por mal uso de cascade tipo você vai inserir no banco 1 obj do tipo Recebimento e você tentou relaciona-lo com outro registro que ja existe no banco e com o cascade o hibernate tentou persistir novamente o registro ja existente.
 Solução reveja o uso de cascade na sua classe recebimento.

att
  Robson Passarella
Responder

Gostei + 0

24/01/2011

Davi Costa

Pelo erro seu objeto está detachad,
o que pode ser feito é recuperá-lo denovo do banco antes de persistir.
Não precisa tb desse
 em.refresh(recebimento);

depois do seu commit; Só vai perder performe indo no banco mais uma vez.
E o rollBack vc dá em caso de erro.

Att Davi
Responder

Gostei + 0

24/01/2011

Barcelos.java

era isso mesmo, cara, valeu mesmo... abraço.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar