2014-09-01 58 views
3

我有这个领域类如何在Grails约束中设置固定长度的字符串?

class Client { 
    String idCard 
    ... 

    static constraints = { 
    idCard size:16 
    ... 
    } 
} 

我BootStrap.groovy中文件

创建一些测试数据,但我得到了以下错误消息

Caused by IllegalArgumentException: Parameter for constraint [size] of property [idCard] of class [class ni.sb.Client] must be a of type [groovy.lang.IntRange] 

我不需要这个属性是一个字符串并有固定长度

我跟随尺寸约束documentation没有成功

谢谢,您的时间

+0

您是否尝试过使用范围如:idCard大小:16..16? – 2014-09-01 17:38:11

+0

尝试后我得到**错误执行bootstraps;嵌套异常是java.lang.ClassCastException:java.lang.String不能转换为java.lang.Integer ** – user615274 2014-09-01 17:41:26

+1

@ user615274是否显示'ClassCastException'在域类中?我认为这个异常在其他地方引发 – Xeon 2014-09-01 17:46:48

回答

9

您可以使用

static constraints = { 
    idCard maxSize:16, minSize: 16 // or simply use size: 16..16 
    ... 
} 

此工程串并会影响到架构生成VARCHAR(16)(例如对于MySQL)

+0

这将允许字符串短于16个字符,它不强制_fixed_长度。 – 2014-09-01 18:10:32

+0

我终于实现了一个自定义验证器,如果它等于16,请检查idCard大小。 – user615274 2014-09-01 19:57:11

相关问题