在这种情况下,我需要你的帮助 我有以下域类:
class Payment {
BigDecimal cash
BigDecimal checkValue
static constraints = {
cash nullable: true
checkValue nullable: true
}
}
cash
和checkValue
属性可以为空,但至少其中一个必须有值。
我希望我能够解释我的问题。
谢谢你的时间!
答案 0 :(得分:2)
在这种情况下,自定义验证器似乎是一个不错的选择。试试:
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部分。