Spring @Valid和@Validated无法协同工作

时间:2019-07-16 10:00:29

标签: java spring spring-validator

我将@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不起作用。

如何修复代码以使所有验证工作正常?

0 个答案:

没有答案