Session-Lebenszyklus
Refresh, optimistische Konflikte, Tenant-Isolation und Löschen im Runtime handhaben.
Bewusst neu laden
refresh lädt sprachabhängige Felder und ihre Zeilenversion neu. Refresh mit ungeflushten Änderungen an Übersetzungszeilen wird abgelehnt; clear und evict verwerfen die zugehörigen Snapshots.
Sauberen Zustand neu laden
Lade und aktualisiere innerhalb einer Transaktion. Führe dies aus, bevor du ungespeicherte Editoränderungen in derselben Session erzeugst.
Gleichzeitige Schreibzugriffe auf dieselbe Sprachzeile lehnen den veralteten Commit ab, auch zwischen Editor und Domänenfeldern. Unterschiedliche Sprachzeilen können unabhängig bearbeitet werden.
Tenant und Sprache gemeinsam festlegen
Eine Hauptentity in einer gemeinsamen Tabelle mit String-@TenantId verwendet den tenantbezogenen Session-Aufruf. Laden, HQL und Editorzugriff bleiben innerhalb dieses Session-Tenants.
Eine tenantgebundene Session
Die generierte Übersetzungszeile trägt den Tenant und einen kaskadierenden Verweis auf ID und Tenant-Schlüssel der Hauptentity.
Datenbank-Kaskaden löschen Übersetzungszeilen, aber eine HQL-Massenlöschung lässt bereits verwaltete Objekte veraltet zurück. Leere die Session nach der Massenoperation, bevor du betroffene Entities erneut lädst.