【发布时间】:2020-03-05 02:37:37
【问题描述】:
我正在尝试通过写BootStrap.groovy 来使用常见的beforeUpdate 方法。
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。
【问题讨论】: