Проверка JSR303 на коллекцию общих объектов - PullRequest
6 голосов
/ 25 августа 2011

Можно ли проверить каждый элемент коллекции на основе одного или нескольких правил проверки делегата? Например:

@EachElement({@Min(1), @Max(12)})
private Set<Integer> monthNumbers;

Ответы [ 2 ]

3 голосов
/ 15 апреля 2013

Взгляните на validator-collection , с этой библиотекой очень легко использовать любую аннотацию ограничений для коллекции простых типов.

@EachMin(1)
@EachMax(12)
private Set<Integer> monthNumbers;

Также см. https://stackoverflow.com/a/16023061/2217862.

0 голосов
/ 25 августа 2011

Посмотрите на этот ответ: Проверка гибернации коллекций примитивов .Это описывает решение, которое работает для вас, но оно довольно сложное.Более простым решением может быть реализация класса-оболочки для вашего Integer и объявление @Min и @Max в этом классе.Чем вы можете использовать

@Valid
private Set<MyIntegerWrapper> monthNumbers;

класс MyIntegerWrapper:

class MyIntegerWrapper
{
   @Min(1)
   @Max(12)
   Integer myInteger;
}

Здесь вы найдете некоторую документацию для @Valid: Графы объектов

...