Lernziele
Seminarinhalt
Lernziele
- Mit Hilfe von praktischen Anwendungen lernen die Teilnehmenden, dass mit einer relationalen Datenbank durch Eclipse Link, ggf Hibernate selbst komplexe Objektbäume in ihrer Persistenz unterstützt werden können.
- Die Teilnehmenden verstehen die weitreichenden Möglichkeiten der Konfiguration mit Eclipse Link, ggf. Hibernate und wenden selbstständig Anwendungstipps zur Optimierung an.
- Die Teilnehmenden sind in der Lage, komplexe Anforderungen effizient und performant um-zusetzen und können eine Implementierung auch über die JPASchnittstellen nutzen.
Seminarinhalt
Grundlagen:
- Architektur
- Installation und Werkzeuge
- Abgrenzung zu anderen Technologien (JDBC, EntityBeans, JDO)
- JPA und Implementierungen, Beispiele Eclipse Link, ggf. Hibernnate
O/R-Mapping:
- Mapping per Annotations
- Abbildung von Spalten auf Properties
- Abbildung von Foreign Keys auf Referenzen
- Abbildung der Vererbung
Transaktionen:
- Ein einfaches Transaktions-Template
- Ein kleines, Dynamic-Proxy-basiertes Transaktions-Framework
Der Cache:
- Objekt-Status
- Struktur des first-level-Caches
- Persistierung, Update und Delete Queries:
- Join Fetch
- Parameter
- Projektionen
- Constructor-Queries
- Bulk-Update und -Delete
- Native Queries
- Criteria
Assoziationen:
- 1:1
- 1:n
- m:n
- Lazy-versus Eager Loading
- Funktionsweise des Lazy Loading
- Serialisierung von Query-Resultaten
- Cascade
Vererbung:
- Single Table
- Joined
- Class Per Table
Weitere Features:
- Automatische Versionierung und Erkennen von Update-Konflikten (Optimistische
- Sperren)
- Callbacks und Listeners
- Das JPA-Metamodel
- Benutzerdefiniertes Mapping von Spalten
Hibernate in Web-Anwendungen:
- Registrierung der EntityManagerFactory
- EntityManager-Verwaltung (ThreadLocal, Terminierung von EntityManagern)
Hibernate im Application Server:
- Einsatz von JPA in EJB-Containern
- Dependency Injection
- Transaktions-Management