Bean验证组 - 正确理解它

时间:2013-07-04 17:38:13

标签: java javabeans bean-validation

我正在尝试理解Bean验证中的Groups。

因此,例如,如果我有一个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只有@PatternField1@Pattern只有field3 Groups 1}}只是验证? (标有数字1,2和3)

我理解正确吗? 我没有留下任何没有{{1}}属性的字段。所以没有默认组。

1 个答案:

答案 0 :(得分:17)

首先,这是javax.validation javadoc

如果要验证bean,请实际调用Validator.validate(T object, java.lang.Class... groups)

然后它将检查指定组的验证约束。它允许使用几个验证案例。

您在问题中描述的内容是准确的。

注意,如果未在约束上放置任何组,则约束属于默认组,如果在调用validate(T对象)时未指定任何组,则该组是唯一经过验证的组。