在我的Grails 3.1.14应用程序中,我有一个域类:
class MyDomain {
String text
def beforeInsert() { beforeUpdate() }
def beforeUpdate() {
text = changeTextBasedOnOtherFields()
println ">>> $text"
true
}
}在控制器中,实例使用myDomain.save flush:true保存。
问题是,text属性通过保存而被忽略,尽管我可以在控制台中看到带有适当值的println输出。
如果我将文本更改代码放在保存的前面:
myDomain.text = changeTextBasedOnOtherFields()
myDomain.save flush:true那它就像魅力一样有效!
有什么办法解决这个迷雾吗?
发布于 2021-01-22 17:48:28
好像是戈姆-抓到你了。
与其在拦截器方法中使用property,不如使用setter。
def beforeUpdate() {
setText changeTextBasedOnOtherFields()
true
}https://stackoverflow.com/questions/40549111
复制相似问题