我正在尝试beforeUpdate
通过写入来使用通用方法BootStrap.groovy
。
def init = { servletContext ->
for (domainClass in grailsApplication.domainClasses) {
if(domainClass.clazz.simpleName == domainName){
domainClass.metaClass.beforeUpdate = {
println "i am here "
def dirtyPropertyNames = this.getDirtyPropertyNames()
println(dirtyPropertyNames)
if(dirtyPropertyNames != null && dirtyPropertyNames.size() > 0) {
for (dirtyPropertyName in dirtyPropertyNames) {
def oldValue = (this.getPersistentValue((dirtyPropertyName)))
def newValue = (this."${dirtyPropertyName}")
}
}
}
}
}
}
但我不能使用this.getdirtyPropertyNames()
,因为它给出了一个错误。
groovy.lang.MissingMethodException:没有方法签名:
如果它在域本身中,则this.getDirtyPropertyNames()
可以正常工作。我也尝试过使用domainClass.getDirtyPropertyNames()
,但它仍然给出错误。
我正在使用 Grails 4。