Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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
Java约束验证器-如何从自定义验证器调用默认约束验证器?_Java_Hibernate_Validation_Bean Validation - Fatal编程技术网

Java约束验证器-如何从自定义验证器调用默认约束验证器?

Java约束验证器-如何从自定义验证器调用默认约束验证器?,java,hibernate,validation,bean-validation,Java,Hibernate,Validation,Bean Validation,我有一个模型对象,如下所示,带有自定义约束验证器。自定义验证器检查是否填充了文件名或小时数 @ValidCriteria class Criteria{ @NotEmpty String id; @NotEmpty String name; String fileName; String hours; } 有一个方法将此作为输入,并验证以下所有条件 条件不为空(默认为验证器) criteria.id不为空(默认为验证器) criteria.name

我有一个模型对象,如下所示,带有自定义约束验证器。自定义验证器检查是否填充了文件名或小时数

@ValidCriteria
class Criteria{
    @NotEmpty String id;    
    @NotEmpty String name;
    String fileName;
    String hours;   
}
有一个方法将此作为输入,并验证以下所有条件

  • 条件不为空(默认为验证器)
  • criteria.id不为空(默认为验证器)
  • criteria.name不为空(默认为验证器)
  • 条件文件名或小时数不为空(由自定义验证器)

    无效评估(@NotNull@Valid-Criteria){}

  • 现在,当我为这个模型类编写单元测试时。我在调用

    Validation.buildDefaultValidatorFactory().getValidator().validate(criteria)
    
    Validation.buildDefaultValidatorFactory().getValidator().validate(criteria)
    

    当我这样做时,默认验证器的前3个验证不会被调用。有没有办法从我的单元测试或自定义验证器调用默认验证器?

    我找到了答案。事实上,下面的一行正在调用我的自定义约束@ValidCriteria中定义的自定义验证器,该约束反过来委托给默认验证器。由于我的验证器中有一个bug,它之前无法工作