Подтвердить что ты не робот

Заказ аннотаций проверки проверки?

У меня есть поле с двумя аннотациями проверки

@NotEmpty
@Length(min=3,max=100)
String firstName;

Мне просто интересно узнать, как спящий режим указывает порядок выполнения аннотации проверки, который должен выполняться в первую очередь, и если это возможно, чтобы настроить это?

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

заблаговременно.

4b9b3361

Ответ 1

Использовать группы проверки JSR-303.

Если ни одна из групп не указана, ограничение является частью группы Bean Validation по умолчанию (см. javax.validation.groups.Default).

Создайте интерфейс, который будет вашим "расширенным" (или тем, что вы хотите назвать):

public interface Extended{}

Теперь создайте интерфейс, который будет содержать аннотацию javax.validation.GroupSequence.

@GroupSequence({Default.class, Extended.class})
public interface MySequence {}

Установите группы проверки на свои ограничения

@NotEmpty // If no group is specified it is part of the default group
@Length(min=3,max=100, groups = Extended.class)
String firstName;

Передайте MySequence на ваш валидатор.

validator.validate(object, MySequence.class);

Как указано вашим @GroupSequence, сначала будут проверены ограничения по умолчанию, и если не будут обнаружены нарушения, они перейдут к расширенной группе.