Überblick
Die Java Persistence API (JPA) ist der zentrale Standard für objekt-relationales Mapping (ORM) in der Java Enterprise Edition. Sie ermöglicht es, Java-Objekte dauerhaft in relationalen Datenbanken zu speichern und wieder abzurufen, ohne dass Entwickler manuell SQL-Statements für jeden Datenbankzugriff formulieren müssen. Dieser Vertiefungskurs setzt fundierte Kenntnisse der Java Enterprise Edition voraus und führt systematisch in die fortgeschrittenen JPA-Konzepte ein. Behandelt werden Entity-Klassen und ihre Annotationen, sämtliche Beziehungstypen zwischen Entitäten (1:1, 1:N, N:M), Vererbungsstrategien sowie Context and Dependency Injection (CDI). Wer bereits mit Java EE vertraut ist und sein Wissen im Bereich Datenpersistenz auf professionelles Niveau heben möchte, findet in diesem Kurs einen strukturierten, praxisnahen Lernpfad.
Kursinhalte & Lernziele
Modul 1 behandelt die Grundlagen der Java Persistence API und Entity-Klassen. Zu Beginn des Kurses wird das Fundament gelegt. Was ist ORM, welche Probleme löst JPA und wie ordnet sich die Technologie in die Java-EE-Architektur ein. Die Teilnehmenden lernen, wie eine Persistence Unit konfiguriert wird, wie der EntityManager erzeugt und verwaltet wird und welche Rollen Annotationen wie @Entity, @Id, @GeneratedValue und @Column spielen.
- Konfiguration der persistence.xml und Definition von Persistence Units
- Annotationen @Entity, @Table, @Column und @Id im Überblick
- Strategien zur Primärschlüsselerzeugung (AUTO, SEQUENCE, TABLE, IDENTITY)
- Lebenszyklus von Entitäten (NEW, MANAGED, DETACHED, REMOVED)
- EntityManager-Methoden persist, merge, remove, find und getReference
- Flush-Modus und Synchronisation mit der Datenbank
Modul 2 widmet sich den Beziehungstypen und der Assoziationsmodellierung. Ein zentrales Thema jedes ORM-Frameworks ist die Modellierung von Beziehungen zwischen Entitäten. Der Kurs behandelt alle drei grundlegenden Beziehungstypen vollständig, einschließlich der jeweiligen Fetch-Strategien und Kaskadierungsoptionen.
- @OneToOne — unidirektionale und bidirektionale Beziehungen, Ownership-Seite
- @OneToMany und @ManyToOne — Verwaltung von Collections und Fremdschlüsseln
- @ManyToMany mit @JoinTable und optionaler Zwischenentität für Zusatzattribute
- CascadeType-Optionen (PERSIST, MERGE, REMOVE, ALL) und wann sie sinnvoll sind
- FetchType LAZY vs. EAGER — Performanceauswirkungen und typische Fallstricke
- orphanRemoval zur automatischen Bereinigung verwaister Kindentitäten
Modul 3 befasst sich mit Vererbungsstrategien und CDI. Java ermöglicht Vererbungshierarchien — JPA muss diese auf das relationale Datenbankmodell abbilden. Je nach Domänenmodell sind unterschiedliche Strategien geeignet. Außerdem wird CDI als Standard-Mechanismus zur Injektion von EntityManager-Instanzen in Managed Beans behandelt.
- InheritanceType.SINGLE_TABLE — alle Subklassen in einer Tabelle
- InheritanceType.JOINED — normalisierte Tabellen je Klasse
- InheritanceType.TABLE_PER_CLASS — vollständig getrennte Tabellen
- @DiscriminatorColumn und @DiscriminatorValue zur Typerkennung
- CDI-Annotationen @Inject, @Produces und @PersistenceContext
- Scoping von EntityManager-Instanzen in CDI-Beans
Modul 4 verbindet Praxisanwendungen mit dem Abfragesystem JPQL. Dieser Block enthält einen umfangreichen Praxisanteil mit allen wichtigen Abfrage- und Sperrmechanismen.
- Abfragesprache JPQL im Vergleich zu SQL
- Einfache SELECT-Statements mit FROM und WHERE
- JOIN FETCH zum Vorabruf verknüpfter Entitäten
- Named Queries mit @NamedQuery-Annotation
- Criteria API für typensichere dynamische Abfragen
- Paginierung mit setFirstResult und setMaxResults
- Aggregatfunktionen (COUNT, SUM, AVG, MIN, MAX) in JPQL
- Aktualisierungen und Löschungen per Bulk-Update und Bulk-Delete
- Native SQL-Abfragen über createNativeQuery
- Zweistufiger Cache — Second-Level Cache und Query Cache aktivieren
- Optimistic Locking mit @Version zur Konflikterkennung
- Pessimistic Locking und LockModeType-Optionen
Nach Abschluss der Praxisphase werden typische Architekturmuster diskutiert, in denen JPA eingesetzt wird: Repository-Pattern, DAO-Schicht und die Integration in Frameworks wie Spring oder Quarkus. Die Teilnehmenden erhalten ein Verständnis dafür, wie JPA in modernen Microservice-Architekturen und in klassischen monolithischen Anwendungen sinnvoll eingesetzt wird. Die Kurseinheiten verbinden theoretische Erklärungen mit hands-on Übungen in einer vorbereiteten Java-EE-Entwicklungsumgebung. Jedes Thema wird zunächst konzeptuell erklärt und dann in konkreten Code-Beispielen umgesetzt, die die Teilnehmenden selbst anpassen und erweitern.
Lernziele:
- Entity-Klassen mit JPA-Annotationen korrekt definieren und konfigurieren
- Einfache 1:1-Beziehungen zwischen Entitäten modellieren und verwalten
- Bidirektionale und unidirektionale 1:N-Beziehungen abbilden und steuern
- N:M-Beziehungen mit Join-Tabellen und Zwischenentitäten umsetzen
- Vererbungsstrategien (Single Table, Joined Table, Table per Class) auswählen und anwenden
- Context and Dependency Injection (CDI) für die Integration von Persistenzeinheiten einsetzen
- Den EntityManager und den Persistence Context gezielt nutzen
- JPQL-Abfragen formulieren und parametrisieren
- Lazy und Eager Loading bewusst steuern und Performance-Probleme vermeiden
- Transaktionsgrenzen korrekt definieren und Fehler im Persistenzkontext behandeln
- Bestehende ORM-Lösungen analysieren und auf JPA migrieren
Zielgruppe & Voraussetzungen
Dieser Kurs richtet sich an Personen, die bereits mit der Java Enterprise Edition vertraut sind und ihre Fähigkeiten im Bereich Datenpersistenz gezielt ausbauen möchten.
- Java-Entwicklerinnen und -Entwickler mit EE-Erfahrung, die JPA systematisch erlernen wollen
- Backend-Entwickelnde, die bisher nur einfaches JDBC eingesetzt haben und auf ORM umsteigen möchten
- Software-Architektinnen und -Architekten, die Datenpersistenzschichten in Java-Anwendungen konzipieren
- IT-Fachkräfte in Unternehmen, die JPA-basierte Softwaresysteme warten oder weiterentwickeln
- Berufsumsteigerinnen und -umsteiger mit Java-Grundkenntnissen, die in die Backend-Entwicklung wechseln wollen
Für eine erfolgreiche Kursteilnahme werden fundierte Kenntnisse der Java Enterprise Edition sowie Grundkenntnisse der Java Persistence API (JPA) vorausgesetzt. Teilnehmende sollten mit objektorientierten Konzepten in Java vertraut sein, also Klassen, Interfaces, Vererbung und Annotationen verstehen. Ein sicherer Umgang mit Windows, Dateiverwaltung und Entwicklungsumgebungen ist ebenfalls erforderlich. Gute Deutschkenntnisse werden vorausgesetzt, da die Kursmaterialien und die Kommunikation auf Deutsch erfolgen. SQL-Grundkenntnisse sind von Vorteil, aber nicht zwingend erforderlich, da die Datenbankseite im Kurs miterklärt wird.
Ablauf & Abschluss
Der Kurs findet im Combined-Learning-Format statt, das Präsenz- und Online-Lernphasen sinnvoll miteinander kombiniert. Theoretische Inhalte werden in strukturierten Lehreinheiten vermittelt und durch interaktive Programmierübungen direkt vertieft. Die Teilnehmenden arbeiten in einer vorbereiteten Java-Entwicklungsumgebung und lösen schrittweise aufbauende Aufgaben zu den jeweiligen Kursthemen. Schwierigere Konzepte wie Vererbungsstrategien oder CDI-Scoping werden durch Gruppenübungen und Code-Reviews vertieft. Kursleitende stehen für Fragen und individuelle Unterstützung zur Verfügung.
Der Kurs dauert in der Regel mehr als eine Woche bis zu einem Monat und wird in Vollzeit absolviert. Die genaue Stundenzahl variiert je nach Anbieter; typischerweise umfassen derartige Kurse zwischen 40 und 80 Unterrichtsstunden. Die Lerneinheiten sind so strukturiert, dass jedes Modul abgeschlossen ist, bevor das nächste beginnt, was ein solides und aufbauendes Verständnis aller JPA-Konzepte gewährleistet.
Bei erfolgreichem Abschluss des Kurses erhalten die Teilnehmenden ein trägerinternes Zertifikat bzw. eine qualifizierte Teilnahmebescheinigung des jeweiligen Bildungsträgers. Dieses Dokument bestätigt die erworbenen JPA-Kenntnisse und kann Arbeitgebern gegenüber vorgelegt werden. Eine staatlich anerkannte Prüfung ist mit diesem Kurs nicht verbunden; das Zertifikat dokumentiert die Teilnahme und den Kompetenzerwerb auf Basis der Kursstruktur des Anbieters.
Nutzen & Perspektiven
Die Java Persistence API ist in der professionellen Java-Softwareentwicklung allgegenwärtig. Praktisch jedes Enterprise-Projekt, das auf Java-EE- oder Jakarta-EE-Basis aufgebaut ist, nutzt JPA für den Datenbankzugriff. Wer diesen Standard beherrscht, ist in der Lage, Datenpersistenzschichten sauber zu entwerfen, effizient abzufragen und wartbar zu strukturieren — Fähigkeiten, die auf dem Arbeitsmarkt konstant nachgefragt werden. Die im Kurs erworbenen Kenntnisse sind nicht nur für den JPA-Standard selbst relevant, sondern bilden auch die Grundlage für die Arbeit mit Frameworks wie Spring Data JPA oder Hibernate, die auf JPA aufbauen. Für Berufseinsteiger und Umsteiger in die Backend-Entwicklung schließt dieser Kurs eine wichtige Lücke: Viele Entwicklerinnen und Entwickler haben Java-Grundkenntnisse, aber keine systematische Auseinandersetzung mit Datenbankzugriff über ORM. Nach Abschluss des Kurses können sie eigenständig Entity-Klassen modellieren, Beziehungen korrekt definieren und Abfragen formulieren — und damit direkt in Java-EE-Projekten produktiv mitarbeiten. Bei Trägern, die nach AZAV zertifiziert sind, kann der Kurs über einen Bildungsgutschein der Bundesagentur für Arbeit oder des Jobcenters gefördert werden. Darüber hinaus kommen je nach persönlicher Situation das Qualifizierungschancengesetz, die Berufsförderung (BFD) der Bundeswehr, Leistungen zur Teilhabe am Arbeitsleben im Rahmen der Rehabilitation sowie Förderungen der Deutschen Rentenversicherung in Betracht. Eine individuelle Beratung durch den Bildungsträger oder die zuständige Agentur für Arbeit klärt die jeweils passende Förderform.
Häufig gestellte Fragen (FAQ)
Für wen ist der JPA-Kurs geeignet?
Der Kurs richtet sich an Java-Entwicklerinnen und -Entwickler, die bereits Grundkenntnisse der Java Enterprise Edition mitbringen. Einsteiger ohne EE-Vorkenntnisse sollten zunächst einen Java-EE-Grundkurs absolvieren, da dieses Angebot als Vertiefung konzipiert ist.
Welche Beziehungstypen werden im Kurs behandelt?
Der Kurs behandelt alle drei grundlegenden JPA-Beziehungstypen vollständig: 1:1-, 1:N- und N:M-Beziehungen, jeweils in ihrer unidirektionalen und bidirektionalen Variante. Außerdem werden Kaskadierung, Fetch-Strategien und orphanRemoval praxisnah erklärt.
Welchen Abschluss erhalte ich nach dem Kurs?
Nach erfolgreichem Abschluss erhalten Sie ein trägerinternes Zertifikat bzw. eine qualifizierte Teilnahmebescheinigung des Bildungsträgers. Eine staatlich anerkannte Prüfung ist nicht Bestandteil dieses Kurses.
Kann der Kurs gefördert werden?
Bei AZAV-zertifizierten Trägern ist eine Förderung über Bildungsgutschein der Bundesagentur für Arbeit oder des Jobcenters möglich. Auch das Qualifizierungschancengesetz, die Berufsförderung der Bundeswehr oder Leistungen der Deutschen Rentenversicherung kommen je nach Situation in Frage. Eine Beratung beim Träger oder der Agentur für Arbeit klärt die Optionen.
Welche Frameworks bauen auf JPA auf?
Die im Kurs erlernten JPA-Kenntnisse sind direkt übertragbar auf den Einsatz von Spring Data JPA und Hibernate, die beide auf dem JPA-Standard aufsetzen. Wer JPA versteht, kann diese Frameworks gezielt nutzen und konfigurieren.
Verwandte Kurse
Welche Förderung passt zu dir?
Finde in 30 Sekunden heraus, ob dir ein Bildungsgutschein oder andere Zuschüsse zustehen. Kostenlos & ohne Anmeldung.
Arbeitsmarkt-Report
IT-Berufe sind seit fünf Jahren der größte Fachkräfteengpass am deutschen Arbeitsmarkt. Der Bestand offener IT-Stellen ist 2024 auf einen Rekordstand gestiegen; AI- und Cloud-Skills werden in den nächsten Jahren weiter überdurchschnittlich nachgefragt.
Zielberufe & offene Stellen
Berufe, in denen Absolvent:innen dieses Kurses typischerweise arbeiten — mit bundesweit offenen Stellen der letzten 12 Monate.
- Prozessmanager/Prozessmanagerin für RPA1.728 Stellen
- Technische Informatik (grundständig)464 Stellen
- Geoinformatik (grundständig)384 Stellen
- Backend-Entwickler372 Stellen
- Wirtschaftsinformatik (grundständig)346 Stellen
- Softwareentwickler Backend80 Stellen