Java Hibernate Objetos
Desde que aprendi recentemente o Java Hibernate, compilei as informações sobre vários estados de objetos de hibernação de Java aqui. Amigos interessados podem dar uma olhada.
Transiente: nenhum dado no banco de dados corresponde a ele. Se exceder o escopo, será coletado pelo coletor de lixo da JVM. Geralmente é um objeto que sai de novo e não tem associação com a sessão.
Persistente: existem dados no banco de dados correspondentes a ele e atualmente estão associados à sessão, e a sessão associada não está fechada e a transação não está comprometida;
O estado de um objeto persistente muda, que afetará o banco de dados quando a transação for cometida (o hibernato pode detectar).
(Quando o objeto for salvo, os dados serão persistidos. Nesse momento, após o obj.set (), a transação será enviada para hibernar.
Se você usar obj.set () antes de salvar o objeto (mesmo que esteja em uma transação), ou seja, antes de persistir no objeto, o hibernato não pode detectar a modificação dos dados e não afetará o banco de dados)
Desfaiz: existem dados no banco de dados correspondentes a ele, mas atualmente não há sessão associada a ele; O status das alterações do objeto destacado e o hibernato não pode ser detectado.
Três estados do objeto Hibernate, Diagrama de Transformação:
Commit () fechará a sessão
Entrevista: E se você determinar em que estado um objeto está?
A base principal é: 1. Verifique se o objeto está na sessão, 2, e veja se existem registros correspondentes no banco de dados.
Resumir:
Estado transitório: não há gerenciamento de sessão e o banco de dados não possui registros correspondentes
Persistência: há gerenciamento de sessões e registros no banco de dados
De-tubo/estado livre: não há gerenciamento de sessão, mas está registrado no banco de dados.
Obrigado pela leitura, espero que isso possa ajudá -lo. Obrigado pelo seu apoio a este site!