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

Hibernate estado managed

gostaria de saber se para usar o metodo find() eu preciso iniciar uma transaction ?

e tmbm se o codigo a seguir funciona ou se tem alguma problema:

Conta conta = manager.find(Conta.class,2);

manager.getTransaction().begin();

??? manager.merge(conta); ou manager.persist() para este caso ??? 

conta.setTitular("julio");

manager.getTransaction().commit()

eu estaria carregando uma conta com estado transient ou detached ao instancia-la com um método .find()?

3 respostas

eu teria que usar o .persist() ou o .merge() para que o meu objeto conta fosse para o estado managed ?

solução!

Boa noite, Julio!

Você só precisa abrir uma transação para os métodos que alteram os objetos, que são o persist(), o merge() e remove(). No find() não é necessário.

Espero ter ajudado.

Abraço.

mas um find() me retorna um objeto no estado detached ?

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