在这种情况下,我需要您的帮助。
我有以下域类:
class Payment {
BigDecimal cash
BigDecimal checkValue
static constraints = {
cash nullable: true
checkValue nullable: true
}
}
cash
和checkValue
属性可以为空,但是其中至少一个必须具有值。我希望我能够解释我的问题。
谢谢你的时间!
最佳答案
在这种情况下,自定义验证器似乎是一个不错的选择。尝试:
class Payment {
BigDecimal cash
BigDecimal checkValue
static constraints = {
cash nullable: true, validator: { val, obj ->
val != null || obj.checkValue != null
}
checkValue nullable: true, validator: { val, obj ->
val != null || obj.cash != null
}
}
}
使用groovy truth,您可以将验证器的闭包简化为如下所示:
static constraints = {
cash nullable: true, validator: { val, obj -> val || obj.checkValue }
checkValue nullable: true, validator: { val, obj -> val || obj.cash }
}
有关更多信息,请参阅grails文档的Validation部分。