【问题标题】:How to avoid Hibernate Validator ConstraintDeclarationException?如何避免 Hibernate Validator ConstraintDeclarationException?
【发布时间】:2015-06-19 03:04:17
【问题描述】:

我有基于 Spring 4 的 WebService,并且我正在使用 Hibernate Validator(超越 MethodValidationPostProcessor)。我的问题是我有我的ClientService 接口及其实现。所以我把 Bean Validation 约束放在实现上,它迫使我把约束放在接口上(抛出ConstraintDeclarationException)(或两者中)。

我想知道两件事:

  1. 为什么会这样?为什么它迫使我将所有约束都放在界面上?是什么原因?
  2. 有没有办法将约束只放在实现中?

提前致谢!问候

【问题讨论】:

    标签: java spring hibernate validation hibernate-validator


    【解决方案1】:

    回答你的第一个问题。该行为在 Bean Validation 规范第 4.5.5 节中指定。 Method constraints in inheritance hierarchies。基本上规则是方法的前提条件(由参数约束表示)不能在子类型中加强。这就是所谓的Liskov substitution principle

    要回答您的第二个问题,目前无法对实现类施加约束。 HV-872 建议将这些规则的可配置放宽实现为 Hibernate Validator 特定功能,但尚未实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-22
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多