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:
- Transiente — objeto criado na memória, mas não associado a uma sessão Hibernate e não guardado na base de dados.
- Persistente — objeto associado à sessão Hibernate e monitorizado. As alterações no objeto serão sincronizadas com a base de dados ao fazer commit.
- 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.
- 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.