在由@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 demo) {
...
}
以上
Demo
类的
id
字段会被校验而
name
字段则不会处理。
原因:
校验属性默认的groups为
Default.class
,该类位于
javax.validation.groups
包下。如果自定义了接口,则只会处理该被接口标注的字段。
解决方法:
自定义接口继承
Default
类即可。
import javax.validation.groups.Default;
// 自定义接口
public interface Update extends Default{
}
版权声明:本文为nibonnn原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。