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) 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.
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) 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.
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) 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.