有什么方法可以使域类 setter 具有命令式操作。这是我希望的工作,是否有可能以其他方式?
域类:
Class ExampleDomain {
BigDecimal someNumber
def setSomeNumber = {setVal ->
println "Today is a good day to be the number: ${setVal}"
}
}
我只能绑定(bind)
onUpdate
上的事件吗?和类似的事情,或者有没有办法改变Java对象驱动事件?例如:
def thisThing = new ExampleDomain(someNumber:3.0) //prints "Today is a good day to be the number: 3.0"
thisThing.someNumber = 5.8 //prints "Today is a good day to be the number: 5.8"
thisThing.save() //prints nothing
这是可能的行为吗?
最佳答案
您可以通过定义 getter/setter 方法而不是闭包来做到这一点:
Class ExampleDomain {
BigDecimal someNumber
void setSomeNumber(someNumber) {
println "Today is a good day to be the number: ${someNumber}"
this.someNumber = someNumber
}
BigDecimal getSomeNumber() {
someNumber
}
}
效劳于
//prints "Today is a good day to be the number: 5.8"
new ExampleDomain().someNumber = 5.8
关于Grails:如何在 GORM 中设置域类属性时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8859404/