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.

Datenbankabfragen

Entradas relacionadas: