我正在尝试理解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
只有@Pattern
和Field1
而@Pattern
只有field3
Groups
1}}只是验证? (标有数字1,2和3)
我理解正确吗? 我没有留下任何没有{{1}}属性的字段。所以没有默认组。
答案 0 :(得分:17)
如果要验证bean,请实际调用Validator.validate(T object, java.lang.Class... groups)
然后它将检查指定组的验证约束。它允许使用几个验证案例。
您在问题中描述的内容是准确的。
注意,如果未在约束上放置任何组,则约束属于默认组,如果在调用validate(T对象)时未指定任何组,则该组是唯一经过验证的组。