Objektrelationales Mapping und JPA: Konzepte und Methoden
Classified in Informatik
Written at on Deutsch with a size of 3,87 KB.
Objektrelationales Mapping (ORM)
Objektrelationales Mapping: Mapping zwischen einem objektorientierten Modell (Klassendiagramm) und einem relationalen Modell.
Impedance Mismatch
Impedance Mismatch: Konflikte, die aus den Strukturunterschieden von objektorientierten Programmiersprachen und relationalen Datenbanken entstehen.
Top-Down-Ansatz
Top-Down: Erstellen eines Klassendiagramms und Mappen auf ein relationales DB-Schema.
Entity
Entity: Entspricht dem Objekt, das durch das DB-Schema beschrieben wird (Annotation @Entity
, parameterloser Konstruktor, darf nicht final
sein, muss einen Primary Key besitzen).
Generatorstrategien für IDs (JPA)
Generatorstrategien der JPA für IDs:
Auto
: Entsprechend der DBMS-Strategie.Table
: In eigener Tabelle.Identity
: Identity Columns, z.B. Autoincrement.Sequence
: Verwendung von Sequenzen.
Persistenz
Persistenz: Bezeichnet die Fähigkeit, Daten oder Objekte über lange Zeit (insbesondere über einen Programmabbruch hinaus) bereitzuhalten.
Persistenzkontext
Persistenzkontext: Umfasst eine Menge von Entity-Instanzen, die zu jedem Datensatz einer Tabelle jeweils nur ein Objekt enthält.
- transaction-scoped: Gültigkeitsdauer entspricht der Dauer einer Transaktion.
- extended: Gültigkeitsdauer kann mehrere Transaktionen umfassen.
Persistence Unit
Persistence Unit: Ihr wird eine EntityManagerFactory
mit allen EntityManager
-Instanzen und deren Entities zugeordnet.
EntityManagerFactory
EntityManagerFactory: Erzeugt EntityManager
-Instanzen und benötigt dafür eine Persistence Unit
bzw. muss einer zugeordnet sein.
EntityManager
EntityManager: Erzeugt, löscht, ändert und sucht Entities. Ist immer nur einem Persistenzkontext zugeordnet.
Entity-Zyklus
Entity-Zyklus:
New
: Kein Persistenzkontext, keine DB-Repräsentation, keine ID.Managed
: Persistenzkontext zugeordnet, DB-Repräsentation.Detached
: Kein Persistenzkontext, nur DB-Repräsentation.Removed
: Persistenzkontext zugeordnet, DB-Repräsentation, zum Löschen freigegeben.
EntityManager Methoden
EntityManager Methoden:
persist
: Übernimmt eine neue oder bereits verwaltete Entity erneut in den Persistenzkontext.find
: Lädt eine Entity aus der DB mit Hilfe des Primary Keys.getReference
: Lädt einen Proxy der gesuchten Entity durch den Primary Key, über den übrige Felder später nachgeladen werden können.contains
: Gibt an, ob sich die Entity im Persistenzkontext befindet.refresh
: Synchronisiert den Zustand der Entity mit dem aktuellen Inhalt der DB, Änderungen werden überschrieben.flush
: Synchronisation des Zustandes aller Entities, die dem Persistenzkontext zugewiesen sind, mit der DB in Richtung der DB.remove
: Entity wird beim nächsten Commit oder Flush aus der DB gelöscht.detach
: Entity wird aus dem aktuellen Persistenzkontext gelöscht.merge
: Detached Entity wird wieder als Kopie in den Persistenzkontext aufgenommen und dadurch managed.clear
: Leert den Persistenzkontext des EntityManagers, d.h. alle managed Entities werden zu detached ohne Synchronisation mit der Datenbank.