Quelles sont détachés, persistante et objets transitoires en veille prolongée?
Ce sont détachées, persistante et objets transitoires en veille prolongée? Veuillez expliquer avec un exemple.
- lors de la session.proche n'est-ce pas supprimer tous les objets étaient ceux de la persistance dans l'étendue de session?
- Oui il va supprimer donc, chaque fois que vous fermez une session persistante de l'état d'un objet est converti à l'état Détaché.
- nice lien fourni avec un code pour une meilleure compréhension
Vous devez vous connecter pour publier un commentaire.
Un
new
instance d'une classe persistante qui n'est pas associée à uneSession
, n'a pas de représentation dans la base de données et aucune valeur de l'identificateur est considéré comme transitoire par Hibernate:Un persistante exemple, a une représentation dans la base de données, une valeur d'identificateur et est associée à un
Session
. Vous pouvez faire une instance éphémère persistante en l'associant avec unSession
:Maintenant, si nous
close
HibernateSession
, l'instance persistante deviendra un détaché exemple: il n'est pas attaché à unSession
plus (mais peut toujours être modifié et rattachée à une nouvelleSession
par la suite).Tout cela est clairement expliqué dans l'ensemble de la Le chapitre 10. Travailler avec des objets de la documentation Hibernate que je ne fais que paraphraser ci-dessus. Certainement, un must-read.
A persistent instance has a representation in the database
Persistant entité n'a pas une représentation dans la base de données avant de commettre l'opération d'enregistrement.Objet dans hibernate a états suivants:
Transitoire - Objets instanciés à l'aide de l'opérateur new, sont appelés objets transitoires.
Un objet est transitoire si elle a juste été instancié à l'aide de l'opérateur new, et il n'est pas associé à une Session Hibernate. Il n'a pas de représentation permanente dans la base de données et pas de valeur d'identification a été attribué. Les instances éphémères seront détruites par le garbage collector si l'application ne tient pas une référence.
Persistant Un objet qui a une base de données d'identité qui lui est associé est appelé un objet persistant.
Une instance persistante a une représentation dans la base de données et une valeur d'identifiant. Elle pourrait avoir juste été sauvegardées ou chargées; cependant, il est, par définition, dans le cadre d'une Session. Hibernate permet de détecter les modifications apportées à un objet dans l'état persistant et de synchroniser l'état avec la base de données lorsque l'unité de travail est terminée.
Détaché - Une instance détachée est un objet qui a été persistant, mais dont la Session a été fermée.
Une instance détachée peut être rattachée à une nouvelle Session à une date ultérieure, le rendant de nouveau persistante. Cette fonctionnalité permet à un modèle de programmation pour de longues unités de travail qui nécessitent de l'utilisateur le temps de réflexion. Nous les appelons des transactions, c'est à dire, une unité de travail à partir du point de vue de l'utilisateur.
http://webiwip.com/interview-questions-answers/hibernate-interview-questions/32012
Laissez-moi vous expliquer en Garbage collector point de vue aussi.
Il y a 3 états d'Objet de mise en veille prolongée (ou) la Portée de l'Objet de mise en veille prolongée-
Il est préférable de comprendre avec un exemple de code-
Considérons une classe POJO comme Étudiant Objet->
Maintenant, cet étudiant de l'objet est à état transitoire.
Quand on attache ce POJO objet à la session hibernate->
Maintenant ce POJO objet est à état persistant.
(Garbage collector point de vue - GC ne peut pas effacer Tout objet qui est dans la persistance de l'état.
Soo nous pouvons dire que la persistance de l'état est comme de stockage temporaire pour les objets POJO)
Si nous exécuter->
puis le POJO objet est Permanent ou de stockage de Base de données de l'état
(Garbage collector point de vue - GC ne peut pas anéantir cet objet parce que ce POJO de l'objet est maintenant en dehors de la portée de la JVM et stockées dans la
forme de tableau à l'intérieur d'une base de données.Soo nous pouvons dire que cette Base de données de stockage de l'état, c'est comme de stockage permanent pour les objets POJO)
Si nous exécuter->
puis POJO objet est supprimé ou retiré arrière de la persistance de l'état à état détaché.Soo cet état de POJO objet est état détaché.
(Garbage collector point de vue - GC pouvez facilement effacer l'état détaché POJO objet de la JVM)
Donné à l'entité suivante:
De Hibernate 5.2 documentation (j'ai aussi pris le
removed
état):Remarque:
L'API Hibernate offre aux couples de méthodes pour basculer entre les états des entités, et je pense qu'il vaut la peine d'explorer un Session Hibernate classe.
À côté de la bonne réponse déjà identifié persistante, transitoire, détaché sont juste de l'état de l'objet en mode veille prolongée.
Pour être plus précis, ces trois états de fait de montrer les hibernate modifications de l'objet et de la session du cycle de vie statut