我正在尝试在我的域类中为变量'amount'创建一个自定义验证器,这样新值应该大于之前的0.50。
例如,假设前一个值为1.0,下次该值应为至少:[之前的值+ 0.50]或更多。
提前感谢您的帮助
答案 0 :(得分:4)
您可以尝试阅读domainEntity.getPersistentValue('amount')
。
编辑: ...在自定义验证程序中,例如:
class Bid {
Double amount
...
static constraints = { amount(validator: { double a, Bid b ->
def oldValue = b.getPersistentValue('amount')
a > oldValue + 0.5 ? true : "Amount $a should be at least ${oldValue + 0.5}" })
}
}
答案 1 :(得分:0)
Thx Victor Sergienko,但我对你的代码做了一些修改
class Bid {
Double amount
...
static constraints = { amount(validator: { double a, Bid b ->
Bid tempBid = Bid.get(b.id)
def oldValue = tempBid.getPersistentValue('amount')
a > oldValue + 0.5 ? true : "Amount $a should be at least ${oldValue + 0.5}" })
}
}
区别在于这一行:
Bid tempBid = Bid.get(b.id)
def oldValue = tempBid.getPersistentValue('amount')
我不知道为什么b.getPersistentValue('amount')
总是返回null值,我的grails版本是2.4.3