Kursüberblick
In praktischen Anwendungen lernen Sie, dass mit einer relationalen Datenbank durch Hibernate selbst komplexe Objektbäume in ihrer Persistenz unterstützt werden können. Sie verstehen die weitreichenden Möglichkeiten der Konfiguration mit Hibernate und wenden selbstständig Anwendungstipps zur Optimierung an. Auch komplexe Anforderungen setzen Sie effizient und performant um und können Hibernate auch über die JPA-Schnittstellen nutzen.
Zielgruppe
Das Seminar "JPA und Hibernate - Ein Open Source Persistenz-Framework für Java" empfiehlt sich für Software-Ingenieure, Programmierer und Anwendungsentwickler.
Voraussetzungen
Teilnehmer sollten das Seminar Java Erweiterungen II - Vertiefung (JAVA-ERW-2) erfolgreich abgeschlossen haben oder vergleichbare Kenntnisse besitzen. Optimal sind Kenntnisse in Datenbank- und Web-Programmierung.
Kursinhalt
Grundlagen:
- Architektur
- Installation und Werkzeuge
- Abgrenzung zu anderen Technologien (JDBC, EntityBeans, JDO)
- JPA und Hibernate
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