Sobes.tech
Junior — Middle

Pode explicar a sequência de etapas que os objetos passam no Hibernate desde a criação até à eliminação?

sobes.tech IA

Resposta da IA

No Hibernate, os objetos passam por vários estados no seu ciclo de vida:

  1. Transiente — objeto criado na memória, mas não associado a uma sessão Hibernate e não guardado na base de dados.
  2. Persistente — objeto associado à sessão Hibernate e monitorizado. As alterações no objeto serão sincronizadas com a base de dados ao fazer commit.
  3. Desanexado — objeto que esteve associado a uma sessão, mas a sessão foi fechada ou o objeto foi desanexado. As alterações não são monitorizadas.
  4. Removido — objeto marcado para ser removido da base de dados.

Exemplo de sequência:

  • Criar um objeto (Transiente)
  • Chamar session.save(obj) — o objeto torna-se Persistente
  • Trabalhar com o objeto, as alterações são guardadas automaticamente
  • Fechar a sessão — o objeto torna-se Desanexado
  • Se necessário, reanexar o objeto à sessão usando session.update(obj)
  • Para remover, chamar session.delete(obj) — o objeto passa a ser Removido

Desta forma, o Hibernate gere os estados dos objetos para sincronizá-los com a base de dados.