Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Estado Removed

Analisando o diagrama, depois que ele se encontra no estado Removed, não é possível transicionar para nenhum outro estado posteriormente? Ou, do removed, eu posso dar um close que ele vai pro Detached ou se eu der um set seguido de um flush, ele conseguiria compilar?

1 resposta

Oi Gustavo,

Na verdade ainda é possível "ressuscitar" uma entidade que está removed, bastando a passar para o método persist:

em.getTransaction().begin();

Produto p = em.find(Produto.class, 1L);
em.remove(p);

//produto volta para o estado managed e não será mais excluido:
em.persist(p);

em.getTransaction().commit();
em.close();