Datenzugriff und Transaktionen
Worauf die Prüfung abzielt
Spring-Data-Repositories, JPA-Beziehungen, Transaktionsgrenzen, typische Performance-Fallen.
Das musst du können
- Spring Data JPA erzeugt Repository-Implementierungen zur Laufzeit.
- Query Methods leiten sich aus Methodennamen ab.
@Transactionalläuft in typischen Apps proxy-basiert.- Transaktionen gehören meist auf Service-Methoden.
- Rollback standardmäßig bei unchecked Exceptions.
- Entity-Beziehungen beeinflussen SQL und Laden.
- Lazy Loading, N+1 und Transaktionsgrenzen im Blick behalten.
Passende Buchkapitel
- Spring Data JPA Mental Model
- Repository Query Methods
- Transactions Deep Dive
- Entity Relationships
- JPA Performance and Best Practices
Typische Prüfungsfalle
Self-Invocation: Ruft eine Methode in derselben Klasse eine andere @Transactional-Methode auf, geht der Aufruf am Proxy vorbei — transaktionales Verhalten greift oft nicht.
Kurz selbst prüfen
- Was generiert Spring Data?
- Warum Transaktionen auf Services?
- Rollback-Defaults?
- Lazy Loading und N+1 in einfachen Worten?
Musterantworten
Spring Data erzeugt Laufzeit-Implementierungen für Repository-Interfaces — CRUD und Query Methods inklusive.
Services definieren Use Cases und klare Transaktionsgrenzen — deshalb gehört @Transactional dorthin.
Standard: Rollback bei unchecked Exceptions und Errors. Checked Exceptions nur mit Konfiguration.
Lazy = verknüpfte Daten erst beim Zugriff. N+1 = eine Query für Eltern, dann pro Kind eine weitere.
Merksatz
Repositories für Persistenz. Services für Transaktionsgrenzen.