【问题标题】:Java constraint validator - how to invoke default constraint validator from my custom validator?Java 约束验证器 - 如何从我的自定义验证器调用默认约束验证器?
【发布时间】:2014-06-02 20:24:23
【问题描述】:

我有一个带有自定义约束验证器的模型对象,如下所示。自定义验证器检查是否填充了 fileName 或 hours。

@ValidCriteria
class Criteria{
    @NotEmpty String id;    
    @NotEmpty String name;
    String fileName;
    String hours;   
}

有一种方法将其作为输入并验证以下所有条件

  1. 条件不为空(默认验证器)
  2. criteria.id 不为空(默认验证器)
  3. criteria.name 不为空(默认验证器)
  4. 条件文件名或小时不为空(通过自定义验证器)

    void 评估(@NotNull @Valid Criteria 标准){}

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

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

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

【问题讨论】:

    标签: java hibernate validation bean-validation


    【解决方案1】:

    我找到了答案。事实上,下面这行调用了在我的自定义约束 @ValidCriteria 中定义的自定义验证器,它又委托给默认验证器。由于我的验证器中的错误,它之前无法正常工作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      • 1970-01-01
      • 2015-01-27
      相关资源
      最近更新 更多