EntityManager
EntityManager ist das zentrale JPA-Interface für DB-Zugriff.
Pendant zum
DbContextin EF Core.
I. Wie bekomme ich einen?
Per @PersistenceContext-Injection in einer EJB:
@PersistenceContext(unitName = "LeviLearningPU")
private EntityManager em;
II. Wichtige Methoden
| Methode | Wirkung |
|---|---|
em.persist(e) |
INSERT (entity wird "managed") |
em.find(Foo.class, id) |
SELECT by PK |
em.merge(e) |
UPDATE |
em.remove(e) |
DELETE |
em.createQuery(jpql, T.class) |
JPQL-Query |
em.flush() |
SQL sofort an DB senden |
III. Container-managed
Der EntityManager ist automatisch in der laufenden CMT-Transaktion eingeschrieben. Du musst nichts commiten.