Ich bin derzeit erstellen eine Überwachung einiger Domain-Klassen und erstellt eine AuditingListener
, die eine ServiceMethod aufruft, um die alten Daten zu speichern.GORM Vererbung benutzerdefinierte Kennung
In dieser Service-Methode erhalte ich die Prüfklasse der Domain Class bySome Namenskonventionen.
Das alles funktioniert gut, aber jetzt bin ich auf ein Problem mit der Audit-Klasse. Der Prüfungs Klasse erstreckt sich von der Basis Domain-Klasse wie folgt aus:
class Foo {
String baaar
}
class FooAudit extends Foo {
Long auditId
Date auditDate = new Date()
}
Mein Problem ist, dass ich in FooAudit
die ID Foo
behalten wollen und eine eigene ID-Eigenschaft. In der Service-Methode, die den Audit-Eintrag erstellen wird, bekomme ich eine Karte aller Eigenschaften des Ursprungs-Domain-Class-Objekts. Ich möchte mit dieser Karte die Eigenschaften von FooAudit
setzen, aber die Karte enthält auch die id
Eigenschaft von Fooo
.
Wenn ich die Eigenschaften von der Karte wie
def auditEntry = new FooAudit()
auditEntry.properties = map
gesetzt bin
Hierdurch wird der von FooAudit
identifizieren die gleiche wie Foo
, aber ich möchte eine eigene haben identifizieren von FooAudit
Wie kann ich Stellen Sie die Eigenschaft auditId
als Kennung von FooAudit
?
Das könnte funktionieren, wenn ich nicht die 'id' von' Foo' in 'FooAudit' benötige, aber in diesem Fall brauche ich es. So würde das für mich nicht funktionieren ... – YAT
Und wie machst du Audit? Du könntest FooAudit in 'beforeUpdate' Event von Foo einfügen. –