Hibernate Framework-07-01-Exploitation des objets persistants


Façons de récupérer la mémoire

Les références nulles seront récupérées en mémoire

En Java, les références nulles seront recyclées par le mécanisme de récupération de place de Java.

Insérez la description de l'image ici

L'objet allouera de l'espace lors de son instanciation, c'est-à-dire que l'espace sera alloué uniquement dans la troisième ligne. Attribuez la première adresse de la zone de tas de mémoire à C1

À la ligne 4, l'adresse est également attribuée à C2;

Un nouvel objet sera créé sur la 5ème ligne et la nouvelle valeur d'adresse sera affectée à C2;

Les références isolées seront récupérées en mémoire

Insérez la description de l'image ici
Il existe un attribut du type de collecte de commandes dans l'objet User.

Cache

Insérez la description de l'image ici
La fonction du cache est de réduire la pression sur la source de stockage permanente (la base de données de valeurs ici)

Cache de session

Insérez la description de l'image ici
L'implémentation interne est toujours référencée via l'interface interne.
Laissez une référence d'un type de collection toujours exister.
L'essence est de mettre l'objet dans la collection

SessionFactory.openSession();初始化session对象,初始化Session。

Insérez la description de l'image ici

Lorsque la session est demandée, regardez d'abord le cache, puis regardez la base de données si elle n'est pas disponible. Lorsque vous
appelez les méthodes get et save, elles sont toutes dans le cache.

Insérez la description de l'image ici

Insérez la description de l'image ici
Clean up! =
Clean up Clean up = Rendre les données mises en cache cohérentes avec les données de la base de données
Mettre à jour la base de données de manière synchrone en fonction du cache de session

Session.flush();清理缓存,会被roulBack回滚事务
Session.close();会永久提交,不会被回滚

Les méthodes Load et get ne nettoient pas le cache, et les méthodes get et load lisent le cache.
Le cache est jugé en premier, donc la base de données ne sera pas lue et les données sales (données d'erreur) de la base de données ne seront pas lues

Instantané de la session

Insérez la description de l'image ici
La méthode save placera les données dans le cache et créera une sauvegarde (instantané) dans le
cache. Lors du nettoyage du cache, elle jugera si les données du cache sont cohérentes avec l'instantané. Si elles sont incohérentes, elle se mettra à jour les nouvelles données dans la base de données.

Insérez la description de l'image ici
Menual: nettoyez manuellement le cache, la méthode de validation n'effectue pas de nettoyage

Insérez la description de l'image ici

COMMIT: il convient à plus de requêtes et les données ne sont pas sûres

Fonction de cache de session

Insérez la description de l'image ici

Exception de dépassement de capacité de pile

Insérez la description de l'image ici

Insérez la description de l'image ici

Ne créera pas un nouvel objet, mais l'affectation OID;

Le cycle de vie des objets Hibernate

Le cycle de vie d'un objet entité

Insérez la description de l'image ici
Temporaire- "Persistance-" Libre- "Supprimer

Insérez la description de l'image ici
Spécifique à un objet temporaire: le cache contient des enregistrements, la table de données n'a pas d'enregistrements correspondants
Fonctionnalités de persistance: la base de données contient des enregistrements, le cache a également des
fonctionnalités correspondantes Fonctionnalités d'objet gratuit: la base de données peut avoir des enregistrements, mais le cache ne correspond pas à l'
objet supprimé Caractéristiques: pas dans le cache, et prévoyez de supprimer l'enregistrement de la base de données.

Insérez la description de l'image ici
La méthode close effacera l'objet cache et modifiera l'indicateur de cache (identifiant si la session est disponible) La
méthode clean efface uniquement le cache

En plus de l'état persistant ne sera pas recyclé, d'autres états peuvent être recyclés, car l'état persistant doit avoir des références.

Hibernate exploitation des objets persistants

Session 的 Save ()

Insérez la description de l'image ici

Mise à jour de la session ()

Insérez la description de l'image ici

L'étiquette du quatrième point peut être utilisée pour se rendre compte que la base de données n'est pas mise à jour lorsqu'elle est cohérente avec l'instantané,
mais il y aura une opération supplémentaire pour interroger la base de données, elle n'est donc généralement pas utilisée.

Insérez la description de l'image ici

Session 的 saveOrUpdate ()

Insérez la description de l'image ici

Insérez la description de l'image ici
Par défaut, l'attribut est un objet temporaire tant que OID = null. La
prémisse est l'objet référencé

La méthode de suppression de Session

Insérez la description de l'image ici
Insérez la description de l'image ici

Session 的 load () get ()

Insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/qq_44627608/article/details/115205958
conseillé
Classement