bg_image
header

Entity Manager

Ein Entity Manager ist ein zentraler Bestandteil von ORM-Frameworks (Object-Relational Mapping), vor allem im Zusammenhang mit Java (JPA – Java Persistence API), aber auch in anderen Sprachen wie PHP (Doctrine ORM).

Hier ist eine verständliche Erklärung:


💡 Definition:

Ein Entity Manager ist eine Komponente, die sich um die Verwaltung von Datenbank-Entities (also Objekten/Datensätzen) kümmert. Er bildet die Schnittstelle zwischen der objektorientierten Welt des Codes und der relationalen Welt der Datenbank.


📦 Aufgaben eines Entity Managers:

  1. Persistieren (Speichern):

    • Speichert ein neues Objekt (Entity) in der Datenbank.

    • Beispiel: $entityManager->persist($user);

  2. Finden/Laden:

    • Holt ein Objekt anhand seiner ID oder anderer Kriterien.

    • Beispiel: $entityManager->find(User::class, 1);

  3. Aktualisieren:

    • Änderungen an einem Objekt werden verfolgt und in die Datenbank geschrieben (z. B. beim flush()).

  4. Entfernen/Löschen:

    • Löscht ein Objekt aus der Datenbank.

    • Beispiel: $entityManager->remove($user);

  5. Transaktionen verwalten:

    • Beginnt, commitet oder rollt Transaktionen zurück.

  6. Query-Handling:


🔁 Lebenszyklus von Entities:

Der Entity Manager verwaltet den „Zustand“ von Objekten:

  • managed (verfolgt Änderungen),

  • detached (nicht mehr verwaltet),

  • removed (zum Löschen markiert),

  • new (noch nicht gespeichert).


🛠 Beispiel mit Doctrine (PHP):

$user = new User();
$user->setName('Max Mustermann');

$entityManager->persist($user); // Zum Speichern vormerken
$entityManager->flush();        // Tatsächlich in DB schreiben

Fazit:

Der Entity Manager ist der zentrale Ansprechpartner, wenn es darum geht, mit Datenbankobjekten zu arbeiten – lesen, schreiben, ändern, löschen. Er abstrahiert die SQL-Ebene und macht die Datenbankarbeit objektorientiert steuerbar.