Ich schreibe ein Grails-Plugin und ich muss in die Domain save() -Methode einhängen, um nach dem Speichern etwas Logik zu machen. Ich muss dies über mehrere Domänenklassen hinweg tun. Ich versuche, Hibernate-Ereignisse in den Fällen zu vermeiden, in denen ein Plug-in-Benutzer nicht Hibernate mit GORM verwendet.Einhängen in Grails Domain-Objekt save()
Ich habe viele Dinge ausprobiert, aber unten ist, was ich denke, sollte die beste Chance bei der Arbeit gehabt haben. In allen Fällen grailsSave ist null. Wie kann ich das machen?
def doWithDynamicMethods = { ctx ->
application.domainClasses.each { dc ->
def grailsSave = dc.metaClass.pickMethod('save', [Map] as Class[])
domainClass.metaClass.save = { Map params ->
grailsSave.invoke(delegate, [params] as Object[])
println "Saved object, now do my thing"
//...
}
}
}
ich in meiner * Plugin.groovy Klasse folgende Einstellungen haben:
def dependsOn = [domainClass: '1.1 > *', hibernate: '1.1 > *']
def loadAfter = ['hibernate']
Shawn und sein Audit Logging-Plugin rockt. –
Danke fürs Teilen! Ich war zu faul, um das selbst herauszufinden. – Kimble