【问题标题】:Hibernate Validator and apache bval - which validator to load?Hibernate Validator 和 apache bval - 要加载哪个验证器?
【发布时间】:2020-07-04 19:18:15
【问题描述】:

项目同时拥有bvalhibernate validator 5.3.6Final

bval 来自第三方 jar 依赖

当尝试加载验证器时 - 它默认为 bval 并且在休眠注释定义的验​​证约束处失败。

final Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
        ValidatorFactory cf = Validation.buildDefaultValidatorFactory();
        final Set<ConstraintViolation<AdminLoginFormImpl>> violations = validator.validate(this)
  1. 如何加载独占休眠验证器?

  2. 它们甚至可以共存吗?

看到异常 ::

No compliant org.hibernate.validator.constraints.Length ConstraintValidator found for annotated element of type java.lang.String

javax.validation.UnexpectedTypeException: No compliant org.hibernate.validator.constraints.Length ConstraintValidator found for annotated element of type java.lang.String

org.apache.bval.jsr.job.ComputeConstraintValidatorClass.findAnnotatedElementValidator(ComputeConstraintValidatorClass.java:171)

【问题讨论】:

    标签: java hibernate-validator


    【解决方案1】:

    显然,您的代码使用了特定于 Hibernate Validator 的约束之一,因此无法使用 Apache BVal。

    如果您的代码不使用任何特定于 Apache BVal 的功能,我会坚持使用 Hibernate Validator 并从依赖项中排除 Apache Bval。

    在任何情况下,只会使用其中一种实现,因此您应该只有一种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多