【发布时间】:2011-02-15 15:53:15
【问题描述】:
我正在尝试为我的域类中的变量“数量”创建一个自定义验证器,以便新值应该比以前的值大 0.50。
例如,假设之前的值为 1.0,下次该值应至少为:[之前的值 + 0.50] 或更多。
提前感谢您的帮助
【问题讨论】:
我正在尝试为我的域类中的变量“数量”创建一个自定义验证器,以便新值应该比以前的值大 0.50。
例如,假设之前的值为 1.0,下次该值应至少为:[之前的值 + 0.50] 或更多。
提前感谢您的帮助
【问题讨论】:
您可以尝试阅读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}" })
}
}
【讨论】:
code class Bid { double amount Date dateTimeOfBid Customer bidder static belongsTo = [listing:Listing] static constraints = { amount(validator: {Bid.getPersistentValue('amount')}) dateTimeOfBid(nullable :false) 投标人(nullable:false) } }
感谢 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') 总是返回空值,我的 grails 版本是 2.4.3
【讨论】: