Olá!! Se o método merge deixa a conta Managed, porque não consigo remover a conta após usar o metodo merge, somente após usar o find!
Olá!! Se o método merge deixa a conta Managed, porque não consigo remover a conta após usar o metodo merge, somente após usar o find!
Oi Rene, tudo bem?
O merge serve pra "mesclar" o estado do objeto que você passou com o correspondente no banco de dados. Resumindo: executa um update no registro do banco que possui o id correspondente.
Mas não é o objeto que você passa pro merge que fica gerenciado. O merge tem um retorno: retorna um objeto do tipo que foi passado pra ele, e esse cara que o merge retorna, é managed.
Você pode fazer assim:
Conta c = em.merge(conta);
em.remove(c);
Podemos ver isso na documentação: http://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#merge-T-
Faz sentido? Se restou alguma dúvida nos avise. Abs.
Sim, faz sentido Lucas! Muito obrigado!!!!
Oi Rene, tudo bem?
É só pra dizer que eu encontei um post bem interessante do Paulo Silveira, onde inclusive, ele fala sobre essa questão do merge(). Recomendo a leitura. :)
http://blog.caelum.com.br/entidades-managed-transient-e-detached-no-hibernate-e-jpa/
Abs.