Ich füge Hibernate Envers meinem Grails 3 Projekt. Ich bemerkte , dass für eine meiner Einheiten, die eine hat onLoad()
Ereignis, das onLoad()
wird Ereignis nie für Envers Revisionsgesellschaften aufgerufen.
Wie kann ich sicherstellen, dass dieser Code immer aufgerufen, auch für historische Revisionen dieser Einheit?
Anwendungsfall:
Ich arbeite an einem RESTful Service mit Grails 3 JSON Ansichten. Einer meiner Domain - Klassen hat einen Diskriminator Spalte, die auch in der JSON Ausgabe gerendert werden müssen , so kann der Verbraucher sagen , welche Art es ist. Aus diesem Grund definiert die Domäne Entität ein onLoad()
Verfahren , das eine transiente Eigenschaft Anpassen des Diskriminators Typ auffüllt:
class MyChildDomainClass extends MyBaseDomainClass {
void onLoad() {
valueType = ValueType.STRING
}
static mapping = {
discriminator value: ValueType.STRING
}
}
Dies funktioniert gut für die normalen Domain - Instanzen, aber wenn ich eine Entität Revision von Envers nachschlagen AuditQueryCreator
, wird die Prüfung queyr nicht den Aufruf onLoad()
Methode.
Es scheint , wie ich konnte Schleife über die Ergebnisse und manuell aufrufen onLoad()
, aber ich hatte gehofft , dass es einen besseren Weg , dies zu beheben war.
Danke im Voraus!