Objets Java Hibernate
Depuis que j'ai récemment appris Java Hibernate, j'ai compilé les informations sur plusieurs états d'objets Java Hibernate ici. Les amis intéressés peuvent jeter un œil.
Transient: Aucune donnée dans la base de données ne lui correspond. S'il dépasse la portée, il sera collecté par le collecteur de déchets JVM. C'est généralement un objet qui sort de nouveau et n'a aucune association avec la session.
Persistant: il existe des données dans la base de données correspondant à celle-ci, et elle est actuellement associée à la session, et la session associée n'est pas close et la transaction n'est pas engagée;
L'état d'un objet persistant change, ce qui affectera la base de données lorsque la transaction sera engagée (Hibernate peut détecter).
(Lorsque l'objet est enregistré, les données seront persistées. Pour le moment, après obj.set (), la transaction sera soumise à Hibernate.
Si vous utilisez obj.set () avant d'enregistrer l'objet (même s'il est dans une transaction), c'est-à-dire avant de persister l'objet, alors Hibernate ne peut pas détecter la modification des données et n'affectera pas la base de données)
Détaché: il y a des données dans la base de données correspondant à celle-ci, mais il n'y a actuellement aucune session qui lui est associée; Le statut de l'objet détaché change et Hibernate ne peut pas être détecté.
Trois états de l'objet hibernate, diagramme de transformation:
Commit () fermera la session
Entretien: que se passe-t-il si vous déterminez dans quel état se trouve un objet?
La base principale est: 1. Vérifiez si l'objet est en session, 2, et voyez s'il existe des enregistrements correspondants dans la base de données.
Résumer:
État transitoire: il n'y a pas de gestion de session et la base de données n'a pas d'enregistrements correspondants
Persistance: il y a la gestion et les enregistrements de session dans la base de données
De-tube / état libre: il n'y a pas de gestion de session, mais il est enregistré dans la base de données.
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!