我将@Validated和@Valid一起用于DTO验证。但是问题在于组级别验证工作还是属性级别一工作。 两者不能一起工作。
我可以知道我的代码有什么问题吗?
public class Employee {
//I want to validate status. It should be either 0 or 1
(Active/Inactive).
//Also it should not be null both for existing and new record.
@NotNull(groups = { New.class, Old.class })
@JsonProperty("emp")
@Min(0)
@Max(1)
private Integer empStatus;
...
public interface Old {
}
public interface New {
}
}
控制器类
public ResponseEntity<Object> updateEmployee(
@Valid @Validated(Employee.Old.class) @RequestBody Employee empDTO) throws Exception {
...
}
当我仅保留@Validated批注时@NotNull检查可以正常工作,但最小时,最大检查失败 当我只保留@Valid min时,max check可以正常工作,但是@NotNull不起作用
当我只保留两个最小值时,最大检查有效,但@NotNull不起作用。
如何修复代码以使所有验证工作正常?