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

Группы проверки боба - правильное понимание

Я пытаюсь понять группы в проверке Bean.

Так, например, если у меня есть компонент, и я хочу, чтобы в некоторых случаях проверялось только определенное поле, я должен их сгруппировать?

 @NotNull (groups=MyClassX.class)
 @Min (groups=MyClassA.class)  // 1
 @Pattern(xxxxx, groups = MyClassA.class) // 2
 private String field1;

 @NotNull (groups=MyClassX.class)
 @Min (groups=MyClassX.class)
 @Pattern(xxxxx, groups=MyClassX.class))
 private String field2;

 @NotNull (groups=MyClassX.class)
 @Min (groups=MyClassX.class)
 @Pattern(xxxxx, groups=MyClassA.class) //3
 private String field3;

Мое понимание из приведенного выше примера заключается в том, что если я MyClassA в валидатор, тогда только @Min и @Pattern для Field1 и @Pattern для field3 проверяются только? (обозначены цифрами 1,2 и 3)

Я правильно понял это? Я не оставил никаких полей без атрибута Groups. Поэтому нет группы по умолчанию.

4b9b3361

Ответ 1

Во-первых, вот javax.validation javadoc

Когда вы хотите проверить компонент, вы на самом деле вызываете объекты Validator.validate(T object, java.lang.Class...)

Затем он проверяет ограничения валидации указанных групп. Это позволяет использовать несколько случаев проверки.

То, что вы описываете в своем вопросе, является точным.

Обратите внимание: если вы не ставите какую-либо группу в свои ограничения, то ограничения относятся к группе по умолчанию, которая является единственной проверенной группой, если вы не указываете какую-либо группу при вызове validate (объект T).