Alguém já passou por isso?
Abs
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Hibernate Brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para hibernat...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para hibernate-bras...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/hibernate-brasil?hl=pt-BR.
Passo a entidade ao método e verifico se o id tá null e, se tiver chamo o método persist do mananger e caso contrário o merge e retorno o id.
Por isso o método é o merge
. Ele junta a possível entidade com mesmo id que se encontra no EntityManager
com a passada como argumento, e devolve a que está managed. O método merge
não faz reattach. Então:
Cliente c = new Cliente(); c.setId( 1 ); em.merge(c); c.setNome( "Cliente com nome alterado" ); |
Não surtirá efeito! Aqui você precisava antes ter pego o que o merge devolveu. Repare na pequena alteração:
Cliente c = new Cliente(); c.setId( 1 ); c = em.merge(c); c.setNome( "Cliente com nome alterado" ); |