OR-Mapping mit Hibernate und JPA
Hibernate zählt zu den etablierten Frameworks für objektrelationale Abbildung (ORM) in Java-Anwendungen und bildet zusammen mit der ›Jakarta Persistence‹ API (JPA) die Grundlage vieler moderner Enterprise-Anwendungen. Das Seminar vermittelt die Entwicklung persistenter Anwendungen mit Hibernate und Jakarta Persistence unter Verwendung aktueller Hibernate-Versionen und moderner Java-Technologien. Die Teilnehmer lernen, wie Java-Klassen, Beziehungen und Vererbungsstrukturen effizient auf relationale Datenbanken abgebildet werden. Dabei werden sowohl standardisierte Jakarta-Persistence-Annotationen als auch Hibernate-spezifische Erweiterungen eingesetzt. Neben der Entwicklung von Entity-Klassen und Abfragen stehen Performance, Transaktionen, Caching, Fetch-Strategien und Best Practices für wartbare Anwendungen im Mittelpunkt. Das Seminar behandelt außerdem moderne Themen wie Criteria API, Bean Validation, Optimistic Locking, DTO-Projektionen, Logging und Testing sowie die Integration von Hibernate in Jakarta EE, Spring und containerisierte Anwendungen.
Inhalte des Seminars
Grundlagen von Hibernate und Jakarta Persistence
- Objektorientierte Persistenz und ORM
- ORM versus JDBC
- Impedance Mismatch
- Hibernate Architektur
- Jakarta Persistence Spezifikation
- Hibernate als JPA-Provider
- Maven oder Gradle für Hibernate-Projekte
- Modellierung mit Entity-Klassen
- Jakarta Persistence Annotationen
- Hibernate Tools und Schema-Generierung
Hibernate-Projekt mit Jakarta Persistence
- Entity-Klassen entwickeln
- Persistence Unit und
META-INF/persistence.xml - Konfiguration über Hibernate Properties
EntityManagerFactoryundEntityManager- Hibernate
SessionAPI - Persistence Context und Lebenszyklus von Entities
- Zustände von Entities
persist,merge,remove,flush,refreshfindundgetReferenceEntityTransaction- Umgang mit Detached Entities
FlushMode- Automatische Schema-Generierung
Mapping mit Jakarta Persistence und Hibernate
@Entity,@Table- Persistente Attribute mit
@Column - Datumswerte, Aufzählungen und Large Objects mit
@Lob - Primärschlüssel mit
@Idund@GeneratedValue - Zusammengesetzte Schlüssel mit
@EmbeddedIdund@IdClass - Eingebettete Komponenten mit
@Embedded @SecondaryTable- Named Queries
- Beziehungen zwischen Entities
- 1:1, 1:n, n:1 und n:m
@JoinColumn,mappedBy- Bidirektionale Beziehungen
- Collections und Maps mit
@MapKey CascadeType,FetchType- Lazy Loading und Fetch Strategien
- Vererbungsstrategien mit
@Inheritance @MappedSuperclass
Abfragen mit JPQL und Criteria API
- Jakarta Persistence Query Language (JPQL)
select,from,where- Alias definieren
distinct,group by,having,order by- Aggregatfunktionen
- Joins und Fetch Joins
- Polymorphe Abfragen
- Benannte und positionale Parameter
- Criteria API
- Dynamische Abfragen
- DTO-Projektionen
- Native SQL Queries
- Stored Procedures
Entity Listener und Validierung
- Entity Listener
- Callback-Methoden
@PrePersist,@PostPersist,@PostLoad@EntityListeners- Bean Validation
- Validierungsannotation und Constraint Validatoren
Transaktionen und Locking
- Transaktionen mit Jakarta Transactions
- Resource Local und JTA
- Hibernate in Jakarta EE und Spring
- Optimistic Locking mit
@Version - Pessimistic Locking
- Isolation und Konsistenz
- Exception Handling bei Transaktionen
Hibernate Performance Tuning
- Dirty Checking
- First Level Cache
- Second Level Cache
- Cache Strategien
- Lazy Loading gezielt einsetzen
- Batch Processing
- Bulk Updates
- Stateless Session
- Fetch Profiles
- SQL Logging und Analyse
- Performanceanalyse und Monitoring
Integration und moderne Hibernate-Entwicklung
- Hibernate mit Jakarta EE
- Hibernate mit Spring und Spring Boot
- Konfiguration mit DataSource und Connection Pool
- Migration von JDBC-Anwendungen
- Integrationstests
- Testcontainers für Datenbanktests
- Containerisierung mit Docker
- Multi-Tenancy Grundlagen
Best Practices
- Identität und Gleichheit
- Implementierung von
equalsundhashCode - Trennung von Entity und DTO
- Vermeidung typischer Lazy-Loading-Probleme
- Sinnvolle Transaktionsgrenzen
- Wartbare Persistenzschichten
- Hibernate-spezifische Erweiterungen
- Überblick über aktuelle Entwicklungen in Hibernate und Jakarta Persistence
Die Fakten
- Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
- Gesamtumfang: 24 Unterrichtsstunden à 45 Minuten
- Zielgruppe: Softwareentwickler
- Vorkenntnisse: Der Kurs ›Java für Fortgeschrittene‹, ›Java für Umsteiger‹ oder vergleichbare Kenntnisse und in der Datenbankanbindung mit Java.
- Schulungsunterlagen: Umfassende Seminarunterlagen und Referenzdokumentation
- Softwareumgebung: Java 25 ist die verwendete LTS Standardversion. Als Entwicklungsumgebung dient standardmäßig IntelliJ IDEA. Alternativ können auch die Eclipse IDE oder Visual Studio Code verwendet werden. Die Seminarteilnehmer arbeiten standardmäßig mit der aktuellen Version Hibernate ORM 7.3 und mit dem RDBMS H2.
Termine / Kontakt
Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).
Weiterführende Seminare
Java und XML, Jakarta Server Pages (JSP) und Servlets, Nebenläufige Programmierung mit Threads, Oracle Certified Professional Java Programmer (OCPJP), Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren, Java Enterprise Architektur und Design Patterns