我正在寫一個grails插件,我需要掛鉤到域save()方法來保存後做一些邏輯。我需要在多個域類中執行此操作。我試圖在插件用戶不使用HORM和GORM的情況下避免使用hibernate事件。掛鉤到Grails域對象保存()
我已經嘗試了很多東西,但以下是我認爲應該有最好的工作機會。在所有情況下,grailsSave是null。我怎樣才能做到這一點?
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"
//...
}
}
}
,我有以下我* Plugin.groovy類設置:
def dependsOn = [domainClass: '1.1 > *', hibernate: '1.1 > *']
def loadAfter = ['hibernate']
肖恩和他的審計記錄插件岩石。 – 2009-12-28 16:39:03
感謝分享!我一直懶惰地看着我的自我。 – Kimble 2009-12-28 22:23:17