3

我正在尝试为我的域类中的变量“数量”创建一个自定义验证器,这样新值应该比以前的值大 0.50。

例如,假设之前的值为 1.0,下次该值应至少为:[previous value + 0.50] 或更多。

在此先感谢您的帮助

4

2 回答 2

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}" }) 
  }
}
于 2011-02-15T16:06:18.523 回答
0

谢谢 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

于 2015-01-27T06:59:32.633 回答