Estoy escribiendo un plugin de grills y necesito engancharme en el método save() del dominio para hacer un poco de lógica después del guardado. Necesito hacer esto en múltiples clases de dominio. Estoy tratando de evitar eventos de hibernación en los casos en que un usuario de un complemento no esté utilizando Hibernate con GORM.Enlazando en Grails Objeto save()
He intentado muchas cosas, pero a continuación es lo que creo que debería haber tenido la mejor oportunidad de trabajar. En todos los casos grailsSave es null. ¿Cómo puedo hacer esto?
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"
//...
}
}
}
Tengo el siguiente puesto en mi * Clase Plugin.groovy:
def dependsOn = [domainClass: '1.1 > *', hibernate: '1.1 > *']
def loadAfter = ['hibernate']
Shawn y su plugin Audit Logging Rocks. –
¡Gracias por compartir! He estado en perezoso para buscar esto por mi cuenta. – Kimble