【问题标题】:Will placing constraints on arbitrary method return types violate Bean Validation 1.0?对任意方法返回类型设置约束会违反 Bean Validation 1.0 吗?
【发布时间】:2013-05-23 18:53:21
【问题描述】:

我知道Bean Validation 1.1 introduces support for validating arbitrary methods

但是在任意方法(例如@NotNull public Frobnicator frobnicate())上添加@NotNull 约束会导致Bean Validation 1.0出现问题吗?还是应该让 Bean Validation 1.0 验证器忽略此类元数据(我希望!)?

(我当然可以使用 Hibernate Validator 进行测试,但这只会告诉我这个特定的实现要么尊重这种情况,要么不尊重这种情况;它并没有告诉我规范作者是否打算允许放置Bean Validation 1.0 中任意方法的验证约束。)

【问题讨论】:

    标签: bean-validation


    【解决方案1】:

    Hibernate Validator 4.x(BV 1.0 的参考实现)提供其own API 用于方法验证,因此方法约束可能在那里得到验证。

    但是仅仅为方法添加约束并不会导致其验证,相反,您需要某种方法拦截器、AOP 建议等来在方法验证时调用验证引擎。所以我认为你不会在 BV 1.0 中看到任何意想不到的副作用。

    我假设 Apache BVAL 也是如此,它也具有方法验证功能。

    【讨论】:

    • 谢谢;我应该提到我主要关注 JPA 环境中的验证。我们只是简单地将@NotNull 放在重载的get 类型方法的返回类型上(一个getter 不带参数;另一个同名的getter 带一个参数;你不能把@NotNull 放在这两个上)。我知道那个案子,但正在寻找其他人。再次感谢您的回答。
    【解决方案2】:

    老实说,由于 Validations 1.0 中没有指定行为,因此无法判断所有实现都会这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2015-05-22
      • 1970-01-01
      • 2018-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多