2014-09-01 2 views
3

은 내가 bootstrap.groovy 파일grails 제약 조건에서 고정 길이의 문자열을 설정하는 방법은 무엇입니까?

에 테스트 데이터를 생성이 도메인 클래스를

class Client { 
    String idCard 
    ... 

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

을하지만 난

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? 시도한 후 –

+0

** 부트 스트랩 실행 중 오류 발생. 중첩 예외는 java.lang.ClassCastException : java.lang.String java.lang.Integer에 캐스팅 될 수 없습니다 ** – user615274

+1

@ user615274는'ClassCastException'이 도메인 클래스에 있다는 것을 보여줍니다? 나는이 Exception이 다른 곳으로 던져 졌다고 생각한다. – Xeon

답변

9

있습니다 (이것은 문자열 작동

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

를 사용할 수 있으며, 스키마 생성 VARCHAR(16)에 영향을 미칠 것입니다 예를 들어, MySQL 용)

+0

그것은 16 자보다 짧은 문자열을 허용 할 것이고 _fixed_ 길이를 시행하지 않는다. –

+0

마지막으로 사용자 정의 유효성 검사기를 구현하여 idCard 크기가 16인지 확인했습니다. – user615274

관련 문제