Вы можете использовать пользовательский валидатор :
class YourDomain {
String code
static constraints = {
code( validator: {
if( !( it in [ 'AB12-QW-1', 'XY-12' ] ) ) return ['invalid.code']
})
}
}
Однако ваше объяснение того, какие коды действительны, немного расплывчато, так что вы, вероятно, хотите что-то еще вместо in
вызова
[править]
Предполагая, что в двух ваших строках только что отображались заполнители для букв или цифр, следующий валидатор регулярных выражений должен работать:
constraints = {
code( matches:'[A-Z]{2}[0-9]{2}-[A-Z]{2}-[0-9]|[A-Z]{2}-[0-9]{2}' )
}
И это вернет ошибку yourDomain.code.matches.invalid
, если не получится