2013-07-04 1 views
13

Я пытаюсь понять группы в проверке компонентов.Группы проверки боба - правильно это понимать

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

@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. Поэтому нет группы по умолчанию.

ответ

14

Во-первых, здесь javax.validation javadoc

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

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

Что вы описываете в своем вопросе точно.

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