
Bitte wählen Sie die Bereiche, die Sie exportieren möchten:

Schulung Jakarta Persistence 3.x Grundlagen
Objektrelationale Abbildung mit JPA 3.x meistern
Schulungsformen
Inhouse-/Firmenschulung
- 3 Tage - anpassbar
- Termin nach Wunsch
- In Ihrem Hause oder bei der GFU
- Preis nach Angebot
- Lernumgebung in der Cloud
- Inhalte werden auf Wunsch an die Anforderungen Ihres Teams angepasst.
Individualschulung
- 3 Tage - anpassbar
- Termin nach Wunsch
- In Ihrem Hause oder bei der GFU
- Preis nach Angebot
- Lernumgebung in der Cloud
- 1 Teilnehmender = Fokus aufs Fachliche und maximaler Raum für individuelle Fragen.
Beschreibung
Der Nutzen für Unternehmen liegt in der Befähigung ihrer Entwicklungsteams, robuste, wartbare und performante Datenzugriffsschichten zu implementieren. Durch das Verständnis der Entitätslebenszyklen und der Funktionsweise des Persistence Context werden typische Fehlerquellen wie verwaiste Entitäten oder unerwartete SQL-Statements vermieden.
Schulungsziel
Die Teilnehmenden lernen die zentralen Konzepte von Jakarta Persistence 3.x kennen und verstehen die objektrelationale Abbildung mit JPA. Sie sind in der Lage, Entitätsklassen zu modellieren, Beziehungen abzubilden und grundlegende CRUD-Operationen mit dem EntityManager durchzuführen.
Details
Inhalt
- Ziele und Erwartungen der Teilnehmenden
- Klärung individueller Lernziele und Erwartungen für ein praxisnahes und relevantes Seminar
- Einführung in Jakarta Persistence - Die Brücke zwischen Objekten und Tabellen
- Von JDBC zu JPA: Wir analysieren die Herausforderungen traditioneller JDBC-basierter Datenbankzugriffe und verstehen, warum objektrelationales Mapping für komplexe Anwendungen unverzichtbar ist. Vom manuellen Mapping von ResultSets zur deklarativen Abbildung mit Annotations.
- Kernkonzepte und Architektur: EntityManager, Persistence Context, Entity Lifecycle und das Zusammenspiel mit der Datenbank. Wir zeichnen die Architektur einer JPA-basierten Persistenzschicht und klären die Rollen von Persistence Unit, EntityManagerFactory und Transaction.
- JPA 3.x im Jakarta-EE- und Spring-Kontext: Die Unterschiede zwischen der Nutzung in Jakarta EE (Container-Managed EntityManager) und in Spring Boot (Application-Managed EntityManager). Wir geben einen Überblick über die Integration in beide Ökosysteme.
- Entitäten modellieren - Vom Java-Objekt zur Datenbanktabelle
- Die Entity-Klasse: Grundlegende Annotationen wie @Entity, @Id, @GeneratedValue, @Table und @Column. Wir erstellen unsere erste Entitätsklasse und verstehen die Anforderungen an Konstruktoren, equals/hashCode und Serialisierbarkeit.
- Primärschlüssel und ID-Generierung: Verschiedene Strategien für die Generierung von Primärschlüsseln: AUTO, IDENTITY, SEQUENCE und TABLE. Wir analysieren die Vor- und Nachteile jeder Strategie für verschiedene Datenbanksysteme und Anwendungsfälle.
- Datentypen und Konvertierungen: Standardmäßig unterstützte Java-Typen und ihre Abbildung auf SQL-Datentypen. Wir nutzen @Enumerated für Enums, @Temporal für Zeitstempel und @Convert für benutzerdefinierte Attributkonverter.
- Beziehungen abbilden - Assoziationen zwischen Entitäten
- Grundlegende Beziehungstypen: @OneToMany, @ManyToOne, @OneToOne und @ManyToMany. Wir modellieren typische Geschäftsbeziehungen wie Kunde-Bestellung, Bestellung-Position und Student-Kurs mit den passenden Annotationen.
- Join-Spalten und Join-Tabellen: Die Steuerung der Datenbankabbildung mit @JoinColumn und @JoinTable. Wir lernen, wie JPA aus den Beziehungsannotationen die entsprechenden Fremdschlüssel- und Zwischentabellen generiert.
- Kaskadierung und Vererbung: Automatische Weitergabe von Operationen mit cascade. Wir setzen Kaskadierung gezielt ein und modellieren Vererbungshierarchien mit @Inheritance (SINGLE_TABLE, JOINED, TABLE_PER_CLASS).
- Der EntityManager - Zentrale Schnittstelle für Datenbankoperationen
- Persistence Context und Lifecycle: Wir verstehen die Zustände einer Entität: transient, managed, detached und removed. Der EntityManager als Verwalter des Persistence Context und seine Methoden persist, merge, remove, find und refresh.
- CRUD-Operationen implementieren: Von der Erzeugung einer EntityManagerFactory bis zur Ausführung von Lese- und Schreiboperationen. Wir implementieren eine DAO-Schicht mit kontrollierten Transaktionen und sauberem Ressourcenmanagement.
- Flush, Clear und Detach: Feinkörnige Steuerung des Persistence Context. Wir analysieren, wann Änderungen tatsächlich in die Datenbank geschrieben werden und wie wir den Context zurücksetzen oder Entitäten abtrennen können.
- Transaktionsmanagement - Konsistenz und Integrität sichern
- ACID-Prinzipien im JPA-Kontext: Die Bedeutung von Transaktionen für die Datenkonsistenz. Wir unterscheiden zwischen container-managed Transaktionen in Jakarta EE und application-managed Transaktionen in Spring Boot.
- Transaktionsgrenzen definieren: @Transactional in Spring und UserTransaction in Jakarta EE. Wir lernen, Transaktionen auf Methodenebene zu deklarieren und verstehen die Auswirkungen auf den Persistence Context.
- Optimistic Locking und Concurrency: Umgang mit gleichzeitigen Zugriffen mit @Version. Wir implementieren optimistische Sperren, um verlorene Updates zu verhindern und konkurrierende Änderungen kontrolliert zu behandeln.
- JPQL - Die objektorientierte Abfragesprache
- Grundlagen von JPQL: Syntax und Struktur im Vergleich zu SQL. Wir formulieren erste Abfragen mit SELECT, FROM, WHERE und lernen den Unterschied zwischen SQL-Spalten und JPQL-Attributen.
- Parameter, Aggregationen und Joins: Sichere Abfragen mit benannten und positionsgebundenen Parametern. Wir implementieren Aggregatfunktionen (COUNT, SUM, AVG) und Joins über Entitätsbeziehungen.
- Dynamische und benannte Abfragen: Abfragen mit createQuery zur Laufzeit erstellen oder mit @NamedQuery vordefinieren. Wir analysieren die Performance-Vorteile benannter Abfragen und setzen sie in Projekten ein.
- Criteria API - Typisierte Abfragen zur Laufzeit
- Von JPQL zur Criteria API: Die Metamodell-basierte, typsichere Alternative für dynamische Abfragen. Wir verstehen den Aufbau mit CriteriaBuilder, CriteriaQuery und Root.
- Komplexe dynamische Abfragen bauen: Schrittweise Konstruktion von Abfragen mit optionalen Filtern, Sortierungen und Paginierung. Wir implementieren eine Suchfunktion, deren Kriterien zur Laufzeit zusammengestellt werden.
- Typsicherheit und Wartbarkeit: Nutzung des statischen Metamodells für kompilierzeitliche Typprüfung. Wir generieren das Metamodell und profitieren von IDE-Unterstützung und refactoring-sicheren Abfragen.
- Ladeverhalten und Performance-Optimierung
- Eager vs. Lazy Loading: Die Unterschiede zwischen sofortigem und verzögertem Laden von Assoziationen. Wir analysieren die Performance-Implikationen und setzen fetch = FetchType.LAZY als Best Practice um.
- Fetch Joins und Entity Graphs: Gezielte Steuerung des Ladeverhaltens für einzelne Abfragen. Wir nutzen Fetch Joins in JPQL und Entity Graphs mit @NamedEntityGraph, um N+1-Selekt-Probleme zu vermeiden.
- Caching-Strategien: First-Level-Cache (Persistence Context) und Second-Level-Cache. Wir konfigurieren den Second-Level-Cache, verstehen seine Funktionsweise und setzen ihn für leseintensive Entitäten ein.
- Jakarta Persistence 3.x - Neuerungen und Praxisrelevanz
- Neuerungen gegenüber JPA 2.x: Wir geben einen Überblick über die wichtigsten Neuerungen in Version 3.x. Von der Migration von javax.persistence zu jakarta.persistence bis zu kleineren API-Erweiterungen.
- Migration bestehender Projekte: Schrittweise Umstellung von JPA 2.x auf Jakarta Persistence 3.x. Wir analysieren die notwendigen Änderungen in Abhängigkeiten, Importen und Konfigurationsdateien.
- Zukunftsperspektiven und Ökosystem: Integration mit modernen Frameworks wie Quarkus, Micronaut und Spring Boot 3.x. Wir diskutieren die Rolle von JPA in nativen Images und reaktiven Architekturen.
- Praxisszenario "Bestellsystem mit Artikelverwaltung und Kundenhistorie"
- Die Teilnehmenden arbeiten in Zweierteams. Jedes Team erhält die Aufgabe, eine vollständige Persistenzschicht für ein Bestellsystem zu entwickeln. Das Domänenmodell umfasst die Entitäten Kunde, Bestellung, Bestellposition und Artikel mit den entsprechenden Beziehungen (OneToMany, ManyToOne, ManyToMany).
- Die Aufgabe umfasst den vollständigen Entwicklungszyklus: Modellierung der Entitätsklassen mit korrekten Annotationen und Primärschlüsselstrategien, Implementierung eines Repositories mit CRUD-Operationen unter Verwendung des EntityManagers, Umsetzung einer komplexen Abfrage (z. B. Kunden mit Bestellungen über einem bestimmten Wert im letzten Quartal) sowohl in JPQL als auch mit Criteria API, Optimierung des Ladeverhaltens mit Fetch Joins zur Vermeidung von N+1-Selekten, Einrichtung von optimistischem Locking für Bestellungen, Konfiguration des Second-Level-Caches für leseintensive Artikel und abschließende Validierung mit Unit-Tests unter Verwendung einer In-Memory-Datenbank (H2).
- Abschließend präsentiert jedes Team seine Lösung, demonstriert die wichtigsten Komponenten und reflektiert die Herausforderungen bei der Beziehungsmodellierung, der Abfrageimplementierung und der Performance-Optimierung. Die Übung wird im Plenum ausgewertet mit Fokus auf Architekturentscheidungen, Effizienz der Abfragen und saubere Trennung der Verantwortlichkeiten.
Zielgruppe & Vorkenntnisse
Java-Entwickler, Backend-Entwickler, Softwarearchitekten sowie Fachkräfte, die in Jakarta-EE- oder Spring-Boot-Projekten mit relationalen Datenbanken arbeiten und ihre Kenntnisse in der objektrelationalen Abbildung vertiefen möchten.
Ihre Schulung
In Präsenz | Online |
|---|---|
| Lernmethode | |
Ausgewogene Mischung aus Theorie und Praxis | Wie auch bei unseren Präsenz-Seminaren: Ausgewogene Mischung aus Theorie und praktischen Übungen. Trainer durchgehend präsent. |
| Unterlagen | |
Seminarunterlagen oder Fachbuch inklusive. Das Fachbuch wählt der Trainer passend zum Seminar aus - Ihren individuellen Buch-Wunsch berücksichtigen wir auf Nachfrage gerne. | Seminarunterlagen oder Fachbuch inklusive (via DHL). Das Fachbuch wählt der Trainer passend zum Seminar aus - Ihren individuellen Buch-Wunsch berücksichtigen wir auf Nachfrage gerne. |
| Arbeitsplatz | |
|
|
| Lernumgebung | |
Neu aufgesetzte Remote-Systeme für jeden Kurs in Abstimmung mit dem Seminarleiter, sodass Sie über ein perfektes Setup für die Durchführung aller praktischen Übungen verfügen. | |
| Arbeitsmaterialien | |
Din A4 Block, Notizblock, Kugelschreiber, USB-Stick, Textmarker, Post-its | |
| Teilnahmezertifikat | |
Nach Abschluss des Seminars erhalten Sie das Teilnahmezertifikat inkl. Inhaltsverzeichnis per E-Mail als PDF. | |
Organisation
In Präsenz | Online | |
|---|---|---|
| Teilnehmendenzahl | ||
min. 1, max. 8 Personen | ||
| Garantierte Durchführung * | ||
Ab 1 Teilnehmenden | ||
| Schulungszeiten | ||
| ||
| Ort der Schulung | ||
GFU SchulungszentrumAm Grauen Stein 27 51105 Köln-Deutz oder online im Virtual Classroom oder europaweit bei Ihnen als Inhouse-Schulung Um ein optimales Raumklima zu gewährleisten, haben wir das Schulungszentrum mit 17 hochmodernen Trotec TAC V+ Luftreinigern ausgestattet. Diese innovative Filtertechnologie (H14 zertifiziert nach DIN EN1822) sorgt dafür, dass die Raumluft mehrfach pro Stunde umgewälzt wird und Schadstoffe zu 99.995% im HEPA-Filter abgeschieden und infektiöse Aerosole abgetötet werden. Zusätzlich sind alle Räume mit CO2-Ampeln ausgestattet, um jederzeit eine hervorragende Luftqualität sicherzustellen. | ||
| Räumlichkeiten | ||
Helle und modern ausgestattete Räume mit perfekter Infrastruktur | Bequem aus dem Homeoffice von überall | |
| All-Inclusive | ||
Frühstück, Snacks und Getränke ganztägig, Mittagessen im eigenen Restaurant, täglich 6 Menüs, auch vegetarisch | Eine Auswahl unserer Frühstücks-Snacks und Nervennahrungs-Highlights senden wir Ihnen mit den Seminarunterlagen via DHL zu. | |
| Barrierefreiheit | ||
Das GFU-Schulungszentrum (Am Grauen Stein 27) ist barrierefrei | - | |
Kostenfreie Services
In Präsenz | Online |
|---|---|
|
|
Buchungsmöglichkeiten
Online oder in Präsenz teilnehmen
Sie können sowohl Online als auch in Präsenz am Seminar teilnehmen. Klicken Sie bei Ihrer Buchung oder Anfrage einfach die entsprechende Option an.
- Lernumgebung in der Cloud
- Inhalte werden auf Wunsch an die Anforderungen Ihres Teams angepasst.
- Lernumgebung in der Cloud
- 1 Teilnehmender = Fokus aufs Fachliche und maximaler Raum für individuelle Fragen.
Was bedeutet Offene Schulung und Inhouse Schulung?
Bei einer offenen Schulung stehen Ort und Termin vorab fest. Jeder Interessent kann eine offene Schulung buchen, daher treffen Teilnehmer aus verschiedenen Unternehmen aufeinander.
Inhouse Schulungen können auf Ihren individuellen Schulungsbedarf zugeschnitten werden. Sie bestimmen den Teilnehmerkreis, Termin und Schulungsort.
Ist eine Inhouse Schulung die richtige Wahl?
Bei einer Inhouse Schulung gehen wir auf die individuellen Bedürfnisse Ihres Unternehmens ein und decken den Schulungsbedarf direkt bei Ihnen im Unternehmen ab.
Das spart Zeit und Geld und sorgt für einen schnellen Wissenstransfer Ihrer Mitarbeiter.
Wer kümmert sich um die Technik bei Inhouse Schulungen?
Eine komplette Lernumgebung in der Cloud mit Remote Zugriff ist für uns selbstverständlich. Sie müssen sich um nichts kümmern. Lediglich ein funktionierender PC oder Notebook mit Internetanschluss sollte für jeden Teilnehmer am Schulungstag bereit stehen.
Vorteile einer Inhouse Schulung
- Kompetente Seminarberatung
- Dozenten aus der Praxis
- Auf Ihre Bedürfnisse zugeschnittener individueller Lernstoff
- Sie können den Termin flexibel gestalten, so wie es für Sie am besten passt
- Unsere Inhouse Schulungen können Europaweit durchgeführt werden
- Der Fokus liegt auf Ihrem Schulungsbedarf, somit schonen Sie Ihr Budget
- Wissenslücken Ihrer Mitarbeitet werden schnell geschlossen
GFU Schulungszentrum