Persistence Unit

Eine Persistence Unit ist die logische Brücke zwischen JPA-Code und einer Datasource.

Wird in der persistence.xml definiert.

I. Beispiel


<persistence-unit name="LeviLearningPU" transaction-type="JTA">
    <jta-data-source>java:jboss/datasources/LeviLearningDS</jta-data-source>
    ...
</persistence-unit>

II. Im Code referenzieren


@PersistenceContext(unitName = "LeviLearningPU")
private EntityManager em;
Warning

Der name der Unit und der unitName im Code müssen exakt matchen.

III. Deployment-Phasen


Hibernate startet die Unit in 2 Phasen (siehe Log-Codes):

  1. Phase 1 of 2: persistence.xml parsen, @Entity-Klassen scannen, Metamodell bauen
  2. Phase 2 of 2: mit DB verbinden, hbm2ddl.auto ausführen (validate passt Schema?)