Em uma aplicação Java web que utiliza o Hibernate, um programador deseja adicionar uma nova instância de entidade ao
contexto de persistência e, para isso, digitou o fragmento de código abaixo em um ambiente ideal.
Contribuinte contribuinte = new Contribuinte();
contribuinte.setNome("Maria da Silva");
session.persist(contribuinte) ;
Nesse trecho de código o objeto contribuinte
A ainda não foi salvo no banco de dados, pois a geração de instruções INSERT ocorrerá somente após um commit da
transação, flush ou fechamento da sessão.
B ainda não foi salvo no banco de dados, pois o método persist apenas torna o objeto persistente, necessitando
obrigatoriamente de uma chamada ao método save na sequência para salvar o objeto.
C será descartado, pois o objeto não foi colocado no estado transient , ou seja, não está associado à sessão e, por isso, não
poderá ser salvo no banco de dados.
D mudou para o estado detached e foi salvo no banco, uma vez que o método persist já executa o comando INSERT
automaticamente para objetos neste estado.
E foi salvo no banco de dados, pois a instância do objeto já estava em estado transient , ou seja, havia uma conexão
estabelecida com o banco de dados.