GORM reduziert den Schreibaufwand erheblich, versteckt aber nicht die physikalischen Eigenschaften einer relationalen Datenbank. Ungünstige Beziehungen, unkontrolliertes Fetching oder zu breite Transaktionen werden unter realen Datenmengen schnell sichtbar.
Das Seminar verbindet die produktiven GORM-APIs mit dem notwendigen Verständnis für Hibernate, SQL und Transaktionsverhalten. Jede Modellierungsentscheidung wird anhand der erzeugten Abfragen und ihrer Betriebswirkung geprüft.
Inhaltsverzeichnis
- Zielgruppe
- Voraussetzungen
- Lernziele
- Modul 1: Domänenmodell und GORM-Mapping
- Modul 2: Datenbindung, Command Objects und Validierung
- Modul 3: Abfragen, Projektionen und dynamische Finder
- Modul 4: Assoziationen, Fetching und Konsistenz
- Modul 5: Transaktionen, Sessions und Nebenläufigkeit
- Modul 6: Datenbank- und GORM-Performance
- Modul 7: Datenbankschema und kontrollierte Migrationen
- Modul 8: Integrationstests mit echter Anwendungskonfiguration
- Praxisprojekt und Übungen
- Arbeitsweise
Zielgruppe
Grails- und Backend-Entwickler, Datenbanknahe Softwarearchitekten sowie Java-Entwickler mit ORM-Erfahrung.
Voraussetzungen
Grails-Grundkenntnisse, sichere objektorientierte Programmierung und Grundkenntnisse relationaler Datenbanken sowie SQL.
Lernziele
- Domänenmodelle mit tragfähigen Beziehungen und Constraints entwerfen.
- Für jeden Anwendungsfall eine geeignete GORM-Abfrageform wählen.
- Fetching und Assoziationen ohne N-plus-eins-Probleme gestalten.
- Transaktionsgrenzen, Sperren und Flush-Verhalten kontrollieren.
- Schemaänderungen und Datenmigrationen reproduzierbar ausführen.
Modul 1: Domänenmodell und GORM-Mapping
Fachliche Modelle werden so entworfen, dass Persistenz, Validierung und spätere Erweiterbarkeit zusammenpassen.
- Schritt 1: Domain-Klassen, Identitäten und Wertobjekte aus fachlichen Anforderungen ableiten.
- Schritt 2: Assoziationen und Kardinalitäten explizit modellieren.
- Schritt 3: Constraints, Mapping-Block und Datenbanknamen festlegen.
- Schritt 4: Das resultierende Schema prüfen und typische Modellierungsfehler korrigieren.
Modul 2: Datenbindung, Command Objects und Validierung
Eingabedaten werden nur in ausdrücklich freigegebene Strukturen gebunden und fachlich validiert.
- Schritt 1: Bindungsquellen und zulässige Felder festlegen.
- Schritt 2: Command Objects mit deklarativen Constraints entwerfen.
- Schritt 3: Verschachtelte Daten, Datumswerte und Aufzählungen sicher konvertieren.
- Schritt 4: Validierungsfehler internationalisierbar und testsicher aufbereiten.
Modul 3: Abfragen, Projektionen und dynamische Finder
GORM-Abfragen werden nach Lesbarkeit, Ausdrucksstärke und erzeugtem Datenbankzugriff ausgewählt.
- Schritt 1: Dynamische Finder und Where Queries für einfache Fälle einsetzen.
- Schritt 2: Kriterienabfragen und HQL für komplexe Filter entwickeln.
- Schritt 3: Projektionen, Sortierung und Pagination effizient gestalten.
- Schritt 4: Erzeugte SQL-Anweisungen analysieren und unnötige Datenzugriffe beseitigen.
Modul 4: Assoziationen, Fetching und Konsistenz
Beziehungen werden mit kontrolliertem Ladeverhalten und eindeutigen Verantwortlichkeiten implementiert.
- Schritt 1: Owning Side, bidirektionale Beziehungen und Kaskadenregeln bestimmen.
- Schritt 2: Lazy und eager fetching an konkreten Zugriffspfaden vergleichen.
- Schritt 3: N-plus-eins-Probleme reproduzieren und mit Join Fetch oder Projektionen beheben.
- Schritt 4: Lösch-, Aktualisierungs- und Validierungsregeln durch Integrationstests absichern.
Modul 5: Transaktionen, Sessions und Nebenläufigkeit
Transaktionsgrenzen werden aus fachlichen Operationen abgeleitet und nicht dem Zufall einzelner Datenzugriffe überlassen.
- Schritt 1: Transaktionale Service-Methoden und Read-only-Operationen unterscheiden.
- Schritt 2: Flush-Verhalten, Dirty Checking und Session-Lebenszyklus nachvollziehen.
- Schritt 3: Optimistische und pessimistische Sperren für Konfliktsituationen bewerten.
- Schritt 4: Rollback, Wiederholung und Fehlerbehandlung mit Tests überprüfen.
Modul 6: Datenbank- und GORM-Performance
Persistenzzugriffe werden anhand realer Abfragen, Ausführungspläne und Objektmengen optimiert.
- Schritt 1: Langsame und häufige Abfragen aus Logs und Metriken identifizieren.
- Schritt 2: N-plus-eins-Probleme, unnötige Joins und Volltabellenzugriffe beheben.
- Schritt 3: Indizes und Projektionen passend zu Zugriffsmustern auswählen.
- Schritt 4: Poolgrößen, Transaktionsdauer und Sperrkonflikte überwachen.
Modul 7: Datenbankschema und kontrollierte Migrationen
Schemaänderungen werden versioniert, geprüft und getrennt von spontanen Laufzeitänderungen ausgeführt.
- Schritt 1: Änderungen am Domänenmodell in explizite Migrationsschritte überführen.
- Schritt 2: Vorwärts- und Rückwärtsstrategie für kritische Änderungen festlegen.
- Schritt 3: Migrationen gegen realistische Datenbestände testen.
- Schritt 4: Deployment-Reihenfolge von Anwendung und Datenbank dokumentieren.
Modul 8: Integrationstests mit echter Anwendungskonfiguration
Zusammenspiel von Persistenz, Transaktionen, Spring-Kontext und Webschicht wird realitätsnah überprüft.
- Schritt 1: Integrationsprofil und Testdaten reproduzierbar konfigurieren.
- Schritt 2: Services und GORM gegen eine echte Testdatenbank prüfen.
- Schritt 3: Transaktionsverhalten und Rollback bewusst kontrollieren.
- Schritt 4: Langsame Tests strukturieren und von schnellen Tests trennen.
Praxisprojekt und Übungen
Ein fachliches Bestellmodell wird aufgebaut, mit realistischen Daten befüllt und über mehrere Abfragevarianten optimiert. Transaktionskonflikte und Schemaänderungen werden reproduziert und mit Tests abgesichert.
Arbeitsweise
Kurze fachliche Einführungen wechseln mit Demonstrationen, angeleiteten Implementierungsschritten, selbstständigen Übungen und gemeinsamer Auswertung. Entscheidungen werden im Code, in Tests und in einer knappen technischen Dokumentation nachvollziehbar festgehalten.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Grails- und Backend-Entwickler, Datenbanknahe Softwarearchitekten sowie Java-Entwickler mit ORM-Erfahrung. |
| Voraussetzungen: | Grails-Grundkenntnisse, sichere objektorientierte Programmierung und Grundkenntnisse relationaler Datenbanken sowie SQL. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
