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

Transient para Managed

Foi explicado no vídeo "Conhecendo o estado Transient" da aula 03 que a chamada do método persist() muda o estado da Conta de Transient para Managed.

Isto também ocorre quando chamamos o método find() ? Obrigado.

6 respostas
solução!

Fala Vitor, tudo bem ?

Então. Como explicado em aula, quando do persist, saímos de um objeto com estado transient pra managed. Perfeito!.

Porém se pensarmos no find, ele recebe em geral, o Serializable que escolhemos como id da entidade (anotado com @Id) e a classe do objeto que queremos recuperar. Sendo assim, não temos ainda um objeto a ser manipulado. Dizemos então que o find apenas nos devolve um objeto com estado managed a partir de um id passado como parâmetro.

Espero ter ajudado no pensamento. Abraço!

Rafael aproveitando esse tópico, e quando o objeto está datached, quando que ele fica nesse estado? Quando usamos o merge?

Opa Alisson,

Dizemos que um objeto está no estado detached quando ele não está gerenciado pela JPA, porém ele possui um id que reflete uma entidade que está presente no banco de dados.

Exemplo: Acabo de instanciar uma conta, sendo assim ela está transient. Então defino pra ela um id, de uma entidade presente no banco de dados, aqui ele se encontra no estado detached. Se agora terminarmos de preecher seus dados e efetuarmos um merge, por exemplo, as alterações são refletidas para a devida entidade com aquele id no banco e aí passamos a estar em estado managed.

Abraço!

Muito bom, Então quando estanciamos um objeto ele se encontra transient, Logo depois quando definimos um id para esse objeto o estado muda de transient para datached? Mais ou menos isso? E quando gravamos o objeto e buscamos ele pelo find seria a mesma lógica?

"Logo depois quando definimos um id para esse objeto o estado muda de transient para datached?" -> Isso mesmo, desde que o id exista no banco. Ele vira detached.

Quando gravamos um objeto ou buscamos aí temos como retorno uma referência pra um objeto no estado gerenciado -> managed.

Rafael perfeito irmão otima explicação, sempre gravei sempre tive erro sobre objeto, sempre via os videos e não entendia muito bem, agora peguei tudo perfeito, obrigado mesmo brother, me ajudo muito!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software