web-dev-qa-db-fra.com

Que signifie l'objet de persistance dans l'architecture Hibernate?

Hibernate est un framework de persistance qui est utilisé pour conserver les données de Java environnement à la base de données.

Je suis tellement confus, si nous persistons et nous opposons à une base de données, alors pourquoi l'architecture Hibernate indique-t-elle l'objet persistant au milieu de l'application et Hibernate en image?

a busy cat
(source: viralpatel.net )

30
reza asgary

Je vais le rendre plus clair. Les objets persistants sont des instances de classes POJO que vous créez qui représentent des lignes dans la table de la base de données. Selon hibernate-doc une instance de classe POJO représentant une table dans la base de données passe par 3 états dont persistant est l'un d'entre eux.

Lorsqu'une instance POJO est dans la portée de la session, elle est dite persistante, c'est-à-dire que la mise en veille prolongée détecte toutes les modifications apportées à cet objet et la synchronise avec la base de données lorsque nous fermons ou vidons la session.

Et sur hibernate.properties et XML Mapping @Ken Chan a raison. Passez par hibernate-doc pour plus d'illustrations sur les objets en hibernation.

32
DarkHorse

Tout d'abord, vous devez comprendre les trois états de l'objet Hibernate, c'est-à-dire transitoire, persistant, détaché.

État transitoire: un objet est en état transitoire s'il vient d'être instancié à l'aide du nouvel opérateur et qu'il n'y a aucune référence dans la base de données, c'est-à-dire qu'il ne représente aucune ligne de la base de données.

État persistant: un objet est dans l'état persistant s'il a une référence dans la base de données, c'est-à-dire qu'il représente une ligne de la base de données et qu'une valeur d'identifiant lui est affectée. Si des modifications sont apportées à l'objet, hibernate détectera ces modifications et les effets seront là dans la base de données, c'est pourquoi le nom Persistant. Ces modifications sont apportées lorsque la session est fermée. Un objet persistant se trouve dans la portée de la session.

État détaché: objet qui a été persistant et n'est plus dans la portée de la session. La mise en veille prolongée ne détectera aucune modification apportée à cet objet. Il peut être à nouveau connecté à la session pour la rendre à nouveau persistante.

19
Parteek

Selon la figure, vous configurez hibernate.properties ou une XML mapping pour mapper une table de base de données à un Java appelé persistent object.

Ensuite, dans votre application, vous utilisez le persistent object comme un objet normal Java pour manipuler son état. Vous pouvez passer persistent object pour hiberner. Hibernate générera et émettra ensuite le SQL nécessaire à DB pour synchroniser l'état du persistent objectet son enregistrement de base de données correspondant. Cela a-t-il un sens?

8
Ken Chan

Les objets persistants sont généralement les objets qui existent en mémoire même au-delà de la durée du processus qui les crée. Ces objets sont ensuite stockés dans la base de données.

6
CodeShadow

L'objet persistant n'est rien d'autre qu'une instance de la classe POJO. Et la classe POJO n'est rien d'autre qu'une classe qui représente une table. Et Hibernate surveille toujours cet objet persistant. Chaque fois que vous manipulez cet objet ou que vous apportez des modifications à cet objet, Hibernate fera de même dans cette table (celle-ci est représentée par la classe POJO). que tout gérer par l'hibernation. Donc, en quelque sorte, c'est l'une des caractéristiques du cadre d'hibernation.

4
Dragon

Les objets persistants sont les classes de votre programme qui ont une représentation dans la base de données.

Exemple si vous avez une classe Car avec les propriétés NumberPlate, Fuel. La configuration NHibernate le mappera par exemple à une table de la base de données nommée Car et dont les colonnes correspondent aux propriétés de la classe Car.

1
Mattias Josefsson