如何将嵌入字段指定为可空?在下面的简单示例中,如果没有与项目关联的价格,我希望字段价格可以为空。但是,如果有价格,则需要货币中的两个字段。以下代码不起作用。当我尝试保存该项时,它会抱怨货币字段的空值。
class Item {
static constraints = {
price(nullable:true)
}
static embedded = ['price']
Currency price
}
class Currency {
Integer quantity
String currencyType
}
答案 0 :(得分:1)
只需在嵌入对象中定义static constraints
即可。
class Currency {
...
static constraints = {
quantity(nullable:true)
currencyType(nullable:true,validator:{ String val, Currency obj ->
if ((val && !obj.quantity) || (!val && obj.quantity)) {
return 'Currency.both.fields.required';
}
})
}
}
然后,只需将'Currency.both.fields.required'
添加到messages.properties
即可显示相应的错误。