Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Duvida Merge

Pq não dar outro find na conta no lugar do merge para transformar a entidade em Managed novamente.

4 respostas

Boa tarde, Diego! Como vai?

O método find() não transforma uma entidade detached em managed. O que o esse método faz é uma busca no BD trazendo a entidade de lá já no estado managed.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Ainda não entendi, de qualquer forma não daria no mesmo, pq o find() busca a entidade no estado que é preciso para ser usado...o managed.

Pelo menos foi o que eu entendi na aula abaixo:

Java e JPA: Persista seus objetos com a JPA2 e Hibernate,

3 - Gerenciamento de estados pelo EntityManager

03 Conhecendo o estado Managed(A partir do minuto 4 do video)


A minha duvida é o seguinte no video 6 da aula 3, ele mostra o uso do merge, no entanto ele tinha feito o find() depois encerrou o EntityManager e logo abaixo ele chama o merge pq a conta está no estado Detached, funcionaria se eu chamasse de novo no outro EntityManager o metodo find novamente.

solução!

Opa, Diego!

A minha duvida é o seguinte no video 6 da aula 3, ele mostra o uso do merge, no entanto ele tinha feito o find() depois encerrou o EntityManager e logo abaixo ele chama o merge pq a conta está no estado Detached, funcionaria se eu chamasse de novo no outro EntityManager o metodo find novamente.

Sim, funcionaria! Mas vc faria um acesso ao BD de forma desnecessária quando vc já tinha a entidade em estado detached, a qual precisava apenas ser passada para o estado managed sem acesso ao BD.

Pegou a ideia? Qualquer coisa é só falar.

Grande abraço e bons estudos, meu aluno!

Entendi, show.