关于@NotNull 注解中groups 的作用

public class User implements Serializable {

@NotNull(message = "primary is not null",groups = {GroupInterface1.class})
private Long id;

}
我就想问一下 我知道这个@NotNull是校验为不为空得东西,我想知道的是里面得groups 定义是有什么作用,GroupInterface1这个类应该是自定义的类,他是很普通得实体类,还是说里面定义得特殊方法,看了好多都没有说明这个问题的,麻烦知道得能说明一下,如果简单就文字表达,如果能用代码说明下,让我一下看懂最好。不要说让我翻资料,找不到才问的。终点是groups有啥用,别讲@NotNull的用处。谢谢了。迫切想知道。

groups是验证分组,比如我有的验证只有更新的时候做,有的只有添加的时候做,就用这个
javax.validate里有提供一个默认分组Default.class是个接口,不指定分组时都会执行这个,分组是个空的接口
在字段上面指定他们的分组

@NotNull(message = "primary is not null",groups = {GroupInterface1.class})
private Long id;

然后在方法里指定对象用哪些分组验证

public void test(@Validated(GroupInterface1.class) User user) {

}