Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JSR-303类型的java字段验证是否总是/隐式地在字段验证之前运行?_Java_Validation_Object_Field_Bean Validation - Fatal编程技术网

JSR-303类型的java字段验证是否总是/隐式地在字段验证之前运行?

JSR-303类型的java字段验证是否总是/隐式地在字段验证之前运行?,java,validation,object,field,bean-validation,Java,Validation,Object,Field,Bean Validation,如果我使用javax.validation.Validator验证带有约束的对象,它是否总是在对象之前评估字段级约束 例如,如果我有: @DummyClassValidation public static class DummyClassToValidate { private Integer myNum; @Min(value = 50) @Max(value = 100) public Integer getMyNum() { retur

如果我使用
javax.validation.Validator
验证带有约束的对象,它是否总是在对象之前评估字段级约束

例如,如果我有:

@DummyClassValidation
public static class DummyClassToValidate {

    private Integer myNum;

    @Min(value = 50)
    @Max(value = 100)
    public Integer getMyNum() {
        return myNum;
    }

    public void setMyNum(Integer myNum) {
        this.myNum = myNum;
    }
}
我验证它,是否保证只有在
@Min
@Max
之后才会对
@DummyClassValidation
进行评估?我知道我可以使用分组进行验证,但如果我不必这样做的话,我宁愿不这样做(即,字段验证隐式分组以在对象验证之前进行验证)。

根据第3.5节:

对于要验证的给定组,验证例程应用于 给定的bean实例应执行以下约束 无特定顺序的验证:

  • 对于所有可访问字段, 执行所有字段级验证(包括在 超类)匹配目标组,除非给定验证 此验证例程期间已处理约束 对于给定的导航路径(见第3.5.1节),作为前一条导航路径的一部分 小组赛

  • 对于所有可访问的getter,执行所有getter级别 验证(包括在接口和 超类)匹配目标组,除非给定验证 此验证例程期间已处理约束 对于给定的导航路径(见第3.5.1节),作为前一条导航路径的一部分 小组赛

  • 执行所有类级验证(包括 在接口和超类上表示)匹配目标组 除非已处理给定的验证约束 在此验证过程中,对给定导航路径执行例行程序(请参阅 第3.5.1)节)作为前一组比赛的一部分

  • 对于所有可到达的 和级联关联,执行所有级联验证(请参阅 第3.5.1)节),包括接口和 超类(见第3.4.5节)


简而言之,除非你想找到一个能保证它的实现并坚持下去,否则你不能依赖它。

也许值得注意的是,有些实现“忽略”了这个规范: