【发布时间】:2010-12-29 16:36:34
【问题描述】:
我正在编写一个 grails 插件,我需要连接到域 save() 方法以在保存后执行一些逻辑。我需要跨多个域类执行此操作。在插件用户未将休眠与 GORM 一起使用的情况下,我试图避免休眠事件。
我尝试了很多事情,但以下是我认为应该有最好的工作机会的事情。在所有情况下,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']
【问题讨论】:
标签: grails groovy grails-plugin