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