在由@Validated标注了value属性后,实体类中未标注groups属性的字段校验将会失效。示例如下:
// 自定义接口
public interface Update {
}
// 实体类
public class Demo {
@NotNull(groups = Update.class)
private Integer id;
@NotBlank
private String name;
}
// Controller 方法
public Object test(@RequestBody @Validated(Update.class)) {
...
}
以上Demo
类的id
字段会被校验而name
字段则不会处理。
原因:
校验属性默认的groups为Default.class
,该类位于javax.validation.groups
包下。如果自定义了接口,则只会处理该被接口标注的字段。
解决方法:
自定义接口继承Default
类即可。
import javax.validation.groups.Default;
// 自定义接口
public interface Update extends Default{
}