2014-09-24 5 views
0

국가 ISO 코드와 국가 이름을 저장하는 도메인 클래스를 만듭니다.Groovy 대문자로 제한되는 문자열

class Country { 
    String countryISO 
    String countryName 
    static constraints = { 
     countryISO size:2, unique 
    } 
} 

는하지만은 ISO 3166-1 알파-2 표준에 따라 대문자 만 포함하도록 countryISO을 제한합니다. 그것이 어떻게 성취 될 수 있는가?

Tim Yates는 대문자로 변경하는 것과 비슷한 질문이 있음을 지적했습니다. 문제는 내가 정말로 그것을 바꾸고 싶지 않다는 것입니다. 나는 그것을 제한하고 싶습니다. 즉, 대문자가 아닌 코드를 입력하면 오류가 발생합니다.

답변

1

간단

class Country { 
    String countryISO 
    static constraints = { 
     countryISO size:2, unique:true, validator:{ it.toUpperCase() == it } 
    } 
} 
1

과 같이 정규 표현식에 대해 값을 확인하는 matches constraint을 사용할 수

static constraints = { 
    countryISO size:2, unique:true, matches:'[A-Z]{2}' 
} 
+1

이 검증 측면에서 중복의 @JeffScottBrown하지만 허용하는 DB 스키마 생성에 영향을 미치는 varchar (255) 대신 varchar (2)가 될 열 –

관련 문제