代码之家  ›  专栏  ›  技术社区  ›  Fletch

在Grails中使用带整数的大小约束

  •  5
  • Fletch  · 技术社区  · 15 年前

    参考文件指出尺寸限制:

    使用groovy范围限制集合或数字的大小,或者 字符串的长度。

    当我对一个整数进行大小约束时,我会得到一个警告

    域类的属性[prop]类具有类型 [java. Lang.整数],不支持约束[大小]。这个 验证期间将不检查约束。

    医生错了吗?

    我知道我可以使用范围,但通常可以更容易地指定数字的位数,而不是实际值(例如,社会保险号必须有7位数或任何数字,而不是1000000-9999999的范围)。

    4 回复  |  直到 11 年前
        1
  •  2
  •   Robert Munteanu    15 年前

    如果需要数字位数,请确保其为正数并具有一定长度:

    myInteger( validator: {
       return it > 0 &&  (it.toString.length) == 7
    })
    
        2
  •  2
  •   James McMahon    11 年前

    我在搜索jira时找到了答案: http://jira.codehaus.org/browse/GRAILS-947 . 医生错了。

    对于数值字段,我们不需要minSize、maxSize和size约束。 因为这个功能在最小、最大和范围限制上 各自的。所以我们标记这些约束(仅用于数字字段) 在0.5中已弃用,将在0.6中删除它。

    看起来是由自定义验证器决定的。

        3
  •  1
  •   Dave Klein    15 年前

    您还可以使用max来约束一个整数,如myIntProp(max:9999999)

        4
  •  0
  •   James McMahon    11 年前

    正如你在书中指出的 Jira 我认为正确的答案是使用 range 整数的约束。

    我认为这是一个简单的替代品 size 具有 range .

    推荐文章