1. État transitoire
Un objet entité créé en ouvrant de l'espace mémoire avec new, mais il n'est pas inclus dans la gestion de la session d'hibernation. Si aucune variable n'y fait référence, il sera recyclé par la JVM (garbage collector. ). L'objet à l'état transitoire est isolé dans la mémoire. Il n'a aucun lien avec la base de données et n'est qu'un support pour transporter des informations.
Lorsqu'un objet d'état transitoire est référencé par un objet d'état persistant, il deviendra automatiquement un objet d'état persistant. Par exemple, lors de l'appel des méthodes save, saveorupdate et autres de la session.
Caractéristiques :
(1) L'objet créé à l'aide de new n'a pas l'attribut id défini
(2) Il n'est pas hébergé par la session. En d'autres termes, les données de l'objet sont stockées dans la mémoire et non dans. le cache de session
(3) Les données de l'objet temporaire n'ont aucune relation avec les données de la base de données
2. État persistant
L'objet d'état persistant est associé aux données de la base de données, il est toujours associé à l'état de la session. (Session) et transaction (Transaction) associées ensemble. Lorsque l'objet d'état persistant change, l'opération de base de données ne sera pas effectuée immédiatement. Ce n'est qu'à la fin de la transaction que la base de données sera mise à jour pour garantir la synchronisation des opérations d'objet persistant et de base de données d'Hibernate.
Lorsque l'objet d'état persistant devient un objet d'état géré, il ne fera pas partie de la portée de gestion de la couche de persistance Hibernate. Caractéristiques : (1) Il s'agit soit d'un objet de données interrogé dans la base de données à l'aide de la méthode get ou load, soit les données sont converties en un objet de couche de persistance à l'aide de la méthode de sauvegarde ou de mise à jour (2) Les données de l'objet est hébergé par la session. En d'autres termes, il existe une copie des données de l'objet dans le cache de session et un enregistrement correspondant dans la base de données3. État hors de contrôle
Lorsquela session de l'objet persistant est fermée , l'objet change de l'état persistant au statut Escrow. L'objet d'état géré est toujours associé aux données de la base de données, mais il n'entre pas dans le cadre de la session Hibernate.
Si vous réassociez un objet détaché à une nouvelle session, il redeviendra un objet persistant. Caractéristiques : (1) Principalement obtenu en appelant session.evict() ou session.clear() ou session.close() via des objets d'état persistants. Vous pouvez également créer un nouvel objet avec un ensemble de valeurs d'identifiant (. 2) L'objet n'est pas dans le cache de la session mais existe dans la mémoire (Remarque : l'objet a une valeur d'identifiant définie)4. État de suppression
Lorsque la méthode de suppression de la session est appelée, l'objet devient l’état supprimé. L'état supprimé ne peut qu'attendre d'être recyclé.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!