Gibt es eine gute/standardmäßige Möglichkeit, einen gemeinsamen Code vor jedem Aufruf von save()
auf Domänenklassen auszuführen?Grails - wie Code vor jedem Speichern ausführen?
Zum Beispiel meine Domain
class Page {
String url
Boolean processed
Date date
Integer urlCrc
}
Meine Form hat nur drei ersten Felder, und ich möchte urlCrc
die save()
jedes Mal berechnen Methode aufgerufen wird. Ich kann die Speichermethode nicht einfach überschreiben, weil sie injiziert wird.
Dank, es funktioniert. Leider ist grails.org down, wegen einiger Routing-Probleme http://grails.1312388.n4.nabble.com/Is-the-plugin-repository-down-td4628824i40.html so brauchte ich hier fragen – mrok
Das obige Lösung ist wahrscheinlich am besten, aber eine andere Möglichkeit besteht darin, ein grailsberechnetes Feld zu verwenden. Siehe dazu die Dokumentation. –
Wenn Sie den Code vor dem Speichern ausführen möchten, verwenden Sie 'beforeUpdate()/beforeInsert()'. Wenn Sie 'beforeValidate()' verwenden, heißt das immer, wenn Sie 'validate()' aufrufen (Methode 'save()' call 'validate()' vor dem Speichern). Also wird Ihr Code vor der Validierung ausgeführt, auch wenn Sie nicht speichern. – IgniteCoders