参考文档说尺寸限制:
使用 Groovy 范围来限制集合或数字的大小或字符串的长度。
当我对整数设置大小约束时,我收到警告
域类 TheClass 的属性 [prop] 具有类型 [java.lang.Integer] 并且不支持约束 [size]。在验证期间不会检查此约束。
医生错了吗?
我知道我可以使用范围,但通常能够更容易地指定数字中的位数而不是实际值(比如社会保险号必须有 7 位或其他任何数字,而不是设定一个范围1000000 - 9999999)。
参考文档说尺寸限制:
使用 Groovy 范围来限制集合或数字的大小或字符串的长度。
当我对整数设置大小约束时,我收到警告
域类 TheClass 的属性 [prop] 具有类型 [java.lang.Integer] 并且不支持约束 [size]。在验证期间不会检查此约束。
医生错了吗?
我知道我可以使用范围,但通常能够更容易地指定数字中的位数而不是实际值(比如社会保险号必须有 7 位或其他任何数字,而不是设定一个范围1000000 - 9999999)。
如果您想要位数,请确保它是正数并且具有一定的长度:
myInteger( validator: {
return it > 0 && (it.toString.length) == 7
})
我在搜索 JIRA 时找到了答案:http: //jira.codehaus.org/browse/GRAILS-947。文档是错误的。
我们不再需要数字字段的 minSize、maxSize 和大小约束,因为此功能分别在 min、max 和 range 约束上。因此,我们将这些约束(仅适用于数字字段)在 0.5 中标记为已弃用,并将在 0.6 中将其删除。
看起来这取决于自定义验证器。
您还可以使用 max 来约束像 myIntProp(max:9999999) 这样的整数