Entwürfe und Kopien
Gespeicherte inaktive Übersetzungen auf einen verwalteten Entwurf kopieren und aktive Felder selbst setzen.
Entwurf
Zuerst die aktive Sprache persistieren
Ein Entwurf ist eine neue verwaltete Entity mit anderer ID. Setze ihre gewöhnlichen Felder für die Session-Sprache, bevor du inaktive Übersetzungen kopierst.
Die übrigen Sprachen kopieren
Führe dies in einer sprachgebundenen Session und Transaktion aus. Der Rückgabewert zählt kopierte Sprachzeilen, keine Felder.
scala
val source = session.find(classOf[Page], sourceId)
val draft = new Page
draft.id = java.util.UUID.randomUUID()
draft.title = source.title
session.persist(draft)
val copiedLocales: Int =
translations.copyInactive(session, source, draft)
Kopierverhalten
Gespeicherte Zeilen kopieren
copyInactive kopiert rohe gespeicherte Werte für jede Quellsprache außer der aktiven Session-Sprache. Es erzeugt keine Fallback-Werte.
Regeln für Zielzeilen
Passende Ziel-Sprachzeilen werden Feld für Feld ersetzt.
Zielsprachen, die in der Quelle fehlen, bleiben erhalten.
Beide Entities müssen von der installierten Factory verwaltet werden und unterschiedliche IDs besitzen.
Tenant-Filter und optimistische Versionen bestehender Zielzeilen gelten weiterhin.
Geladener Zustand bleibt geladen
Die Kopie aktualisiert keine bereits geladenen Felder der beiden verwalteten Entities. Verwende eine neue Session, um einen geänderten Fallback zu sehen.