Используйте ограничение размера с целым числом в Grails - PullRequest
5 голосов
/ 20 августа 2009

Справочный документ говорит, что ограничение размера:

Использование диапазона Groovy для ограничения размера коллекции или числа или длина строки.

Когда я ставлю ограничение размера на целое число, я получаю предупреждение

Свойство [prop] класса домена TheClass имеет тип [java.lang.Integer] и не поддерживает ограничение [размер]. это ограничение не будет проверяться во время проверки.

Является ли документ неправильным?

Я знаю, что мог бы использовать диапазон, но, как правило, было бы проще указать количество цифр в номере, а не фактическое значение (например, номер социального страхования должен состоять из 7 цифр или чем-то еще, вместо диапазон 1000000 - 9999999).

Ответы [ 4 ]

2 голосов
/ 21 августа 2009

Я нашел ответ во время поиска JIRA: http://jira.codehaus.org/browse/GRAILS-947. Док не прав.

Нам не нужны ограничения minSize, maxSize и size для числовых полей больше, так как эта функция на мин, макс и ограничения диапазона соответственный. Таким образом, мы отмечаем эти ограничения (только для числовых полей) как устаревший в 0.5 и удалит его в 0.6.

Похоже, это зависит от пользовательского валидатора.

2 голосов
/ 21 августа 2009

Если вы хотите количество цифр, убедитесь, что оно положительное и имеет определенную длину:

myInteger( validator: {
   return it > 0 &&  (it.toString.length) == 7
})
1 голос
/ 21 августа 2009

Вы также можете использовать max для ограничения целого числа, например myIntProp (max: 9999999)

0 голосов
/ 13 июня 2013

Как вы указали в своей ссылке Jira , я думаю, что правильный ответ для этого заключается в использовании ограничения range для целых чисел.

Я думаю, что это просто, если заменить size на range.

...