Je suis nouveau dans le monde Java et JPA. J'étudiais JPA et suis tombé sur de nombreux nouveaux termes tels que Entité, persistance. En lisant, je ne comprenais pas la définition exacte de Persistance Contexte.
Quelqu'un peut-il expliquer en termes simples laïques? Quel est le rapport avec les données utilisées dans le @Entity
?
Par exemple, je trouve cette définition trop compliquée à comprendre:
Un contexte de persistance est un ensemble d'entités telles que, pour toute identité persistante, il existe une instance d'entité unique.
Un contexte de persistance gère un ensemble d’entités contenant des données à conserver dans un magasin de persistance (par exemple, une base de données). En particulier, le contexte est conscient des différents états qu'une entité peut avoir (par exemple, gérés, détachés) en relation avec le contexte et le magasin de persistance sous-jacent.
Bien que lié à Hibernate (un fournisseur JPA), je pense que ces liens sont utiles:
http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch03.html
http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/architecture.html
Dans Java EE, un contexte de persistance est normalement accessible via un EntityManager.
http://docs.Oracle.com/javaee/6/api/javax/persistence/EntityManager.html
Les différents états qu'une entité peut avoir et les transitions entre ceux-ci sont décrits ci-dessous:
http://docs.jboss.org/hibernate/entitymanager/3.6/reference/en/html/objectstate.html
http://gerrydevstory.com/wp-content/uploads/2012/05/jpa-state-transtition.png
Tiré de this page:
Voici un rapide aide-mémoire sur le monde JPA:
Un contexte persistant représente les entités qui contiennent des données et sont qualifiées pour être persistantes dans un stockage persistant, comme une base de données. Une fois que nous commit
une transaction sous une session à laquelle ces entités sont attachées, , Hibernate purge le contexte persistant et change (insérer/enregistrer, mettre à jour ou supprimer) sont conservés dans le stockage persistant.
L'API org.hibernate.Session et l'API javax.persistence.EntityManager représentent un contexte permettant de traiter des données persistantes. Ce concept s'appelle un contexte de persistance. Les données persistantes sont associées à un contexte de persistance et à la base de données sous-jacente.
"Un ensemble d'instances persistantes (d'entités) gérées par une instance de gestionnaire d'entités à un moment donné" est appelé contexte de persistance.
L'annotation JPA @Entity indique une entité persistante.
Reportez-vous à JPA Définition here
Bien que @pritam kumar donne un bon aperçu, le cinquième point n’est pas vrai.
Le contexte de persistance peut être soit Transaction Scoped - le contexte de persistance "vit" pour la durée de la transaction, soit étendu - Le contexte de persistance s'étend sur plusieurs transactions.
https://blogs.Oracle.com/carolmcdonald/entry/jpa_caching
EntityManager et Session d'Hibernate de JPA offrent un contexte de persistance étendu.
En termes simples, nous pouvons dire que le contexte de persistance est un environnement dans lequel les entités sont gérées, c'est-à-dire qu'il synchronise "Entity" avec la base de données.