Не удалось найти валидатор для ограничения 'javax.validation.constraints.Size' - PullRequest
0 голосов
/ 03 мая 2018

У меня следующая ошибка

javax.validation.UnexpectedTypeException: HV000030: валидатор не может быть найден для проверки ограничения 'javax.validation.constraints.Size' введите «java.lang.Integer». Проверьте конфигурацию для «со скидкой»

Мой код:

@Column(name= "discount_percentage")
@Size(min=0, max=90)
@Min(0)
@Max(90)
private Integer discountPercentage = 0;

Я установил его в 0, потому что я получал исключение NullPointerException при загрузке моего представления. И это Integer, потому что я читал в вопросе других, и некоторые люди говорят, что иногда возникают проблемы при использовании @Size с примитивными типами.

Что мне делать? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

@Size является аннотацией Bean Validation, которая проверяет, что связанный String имеет значение, length ограниченное значениями minimum and maximum. И, как говорит ваш exception, это не относится к типу Integer.

Использование: @Range

@Column(name= "discount_percentage")
@Range(min=0, max=90)
private Integer discountPercentage = 0;

Или вы используете в облаке только @Max or @Min, и это тоже будет работать. Для получения дополнительной информации, пожалуйста, посмотрите эту ссылку.

0 голосов
/ 03 мая 2018

@Size не используется для проверки мин / макс.

Используется для проверки размера коллекций, длины строк и т. Д.

В этом случае вы должны использовать @Min, @Max вместо.

См. Здесь полный документ: https://docs.oracle.com/javaee/7/api/javax/validation/constraints/Size.html

...