Ich bin neu in der Java-Welt und JPA. Ich studierte JPA und stieß auf viele neue Begriffe wie Entity, Persistenz. Beim Lesen konnte ich die genaue Definition für nicht verstehen Persistenzkontext.
Kann es jemand in einfachen Laienbegriffen erklären? Was hat es mit den verwendeten Daten zu tun? @Entity?
Zum Beispiel finde ich diese Definition zu kompliziert, um sie zu verstehen:
Ein Persistenzkontext ist ein Satz von Entitäten, sodass es für jede persistente Identität eine eindeutige Entitätsinstanz gibt.
JamesB
Ein Persistenzkontext handhabt einen Satz von Entitäten, die Daten enthalten, die in einem Persistenzspeicher (z. B. einer Datenbank) persistiert werden sollen. Insbesondere ist sich der Kontext der unterschiedlichen Zustände bewusst, die eine Entität in Bezug auf sowohl den Kontext als auch den zugrunde liegenden Persistenzspeicher haben kann (z. B. verwaltet, getrennt).
Obwohl Hibernate verwandt ist (ein JPA-Anbieter), halte ich diese Links für nützlich:
hmmm, jetzt ergibt es sinn. Haben Sie eine ähnliche „einfache“ Definition, die den Unterschied zwischen containerverwalteten und anwendungsverwalteten Entitätsmanagern aufzeigt?
– Amrit
12. November 2013 um 13:35 Uhr
container vs application gibt im Grunde nur an, wo Entity Manager erstellt wird – außerhalb in einem Container oder innerhalb einer Anwendung.
– uiron
12. November 2013 um 14:34 Uhr
Entitäten werden verwaltet von javax.persistence.EntityManager Beispiel Persistenzkontext verwenden.
Jeder EntityManager Instanz zugeordnet ist aPersistenzkontext.
Innerhalb der Persistenzkontextdie Entitätsinstanzen und ihre Lebenszyklus verwaltet werden.
Persistenzkontext definiert a Umfang unter welchen besondere Entitätsinstanzen werden erstellt, beibehalten und entfernt.
EIN Persistenzkontext ist wie ein Zwischenspeicher die eine Reihe von enthält beständige Entitäten Also einmal die Transaktion ist abgeschlossenwerden alle persistenten Objekte von der getrennt Der Persistenzkontext von EntityManager und werden nicht mehr verwaltet.
Ich habe festgestellt, dass EclipseLink Entitäten nicht trennt, nachdem eine Transaktion abgeschlossen ist …
– Ray Hulha
1. September 2015 um 10:11 Uhr
Der Cache des vom Container verwalteten Persistenzkontexts bleibt nur für die Dauer der Transaktion erhalten. In einer Transaktion gelesene Entitäten werden nach Abschluss der Transaktion getrennt und müssen zusammengeführt werden, um in nachfolgenden Transaktionen bearbeitet zu werden. EclipseLink. @RayHulha
– pritam kumar
8. September 2015 um 4:55 Uhr
@pritamkumar, du hast das Konzept eines Persistenzkontexts gut erklärt. Ich möchte nur hinzufügen, dass es auch die Annotation javax.persistence.PersistenceContext gibt, die verwendet wird, um ein EntityManager-Objekt einzufügen und den Geltungsbereich des eingespeisten Objekts festzulegen (z. B. eine Transaktion).
– Paulo Merson
12. Februar 2016 um 19:13 Uhr
Warum ist dies kein Implementierungsdetail und warum muss ich meinen EntityManager manuell angeben, um einen PersistenceContext zu verwenden?
Ein Cache ist eine Kopie von Daten, d. h. Kopie, die aus der Datenbank gezogen wird, aber außerhalb der Datenbank lebt.
Beim Leeren eines Caches werden geänderte Daten wieder in die Datenbank eingefügt.
Ein PersistenceContext ist im Wesentlichen ein Cache. Es neigt auch dazu, eine eigene nicht gemeinsam genutzte Datenbankverbindung zu haben.
Ein EntityManager repräsentiert einen PersistenceContext (und damit einen Cache)
Eine EntityManagerFactory erstellt einen EntityManager (und damit einen PersistenceContext/Cache)
Kann ein PersistteceContext EntityManager-Instanzen haben? Und kann ein Entity Manager einen beliebigen PersistenceContext haben? PersistenceContext ist nur eine für alle Anwendungen?
– Robert
6. Februar 2019 um 3:57 Uhr
qwerty
EIN anhaltender Kontext stellt die Entitäten dar, die Daten enthalten und dafür qualifiziert sind, in einem dauerhaften Speicher wie einer Datenbank gespeichert zu werden. Sobald wir commit eine Transaktion unter einer Sitzung, an die diese Entitäten angehängt sind, Hibernate leert den persistenten Kontext und Änderungen (einfügen/speichern, aktualisieren oder löschen) auf ihnen werden im persistenten Speicher beibehalten.
PLP
Beide org.hibernate.Session API und javax.persistence.EntityManager API stellen einen Kontext für den Umgang mit persistenten Daten dar.
Dieses Konzept heißt a Persistenzkontext. Persistente Daten haben einen Status in Bezug auf einen Persistenzkontext und die zugrunde liegende Datenbank.
Neomatrix
Persistenzkontext ist ein Umgebung oder Zwischenspeicher wo Entitätsinstanzen (die in der Lage sind, Daten zu speichern und dadurch in einer Datenbank gespeichert zu werden) verwaltet werden Entitätsmanager.Es synchronisiert die Entität mit der Datenbank. Alle Objekte haben @Einheit Anmerkungen können persistiert werden. @Einheit ist nichts anderes als eine Klasse, die uns hilft, Objekte zu erstellen, um mit der Datenbank zu kommunizieren. Und die Art und Weise, wie die Objekte kommunizieren, verwendet Methoden. Und wer diese Methoden bereitstellt, ist der Entity Manager.
“Ein Satz von persistenten (Entitäts-) Instanzen, die zu einem bestimmten Zeitpunkt von einer Entitätsmanagerinstanz verwaltet werden”, wird als Persistenzkontext bezeichnet.