在应用自定义约束验证器之前验证类型的字段
Validating fields of a type before applying a custom constraint validator to it
我有一个 class 是这样的
@MyValidator
class Demo {
@NotNull
Instant startDate
...
}
在 MyValidator 约束的 ConstraintValidator 中,我进行了一个调用,要求 startDate 不为空。
如果 startDate 上的 @NotNull 约束在我的 @MyValidator 约束之前被验证,我不必担心,但在我的测试中,@MyValidator 首先被验证,我得到了一个 NPE。
我如何向调用我的 ConstraintValidator 的验证器指示应在字段级 @NotNull 约束之后验证 @MyValidator 约束,或者我自己显式验证 @NotNull 约束作为我的 ConstraintValidator 实现的第一步?
您可以使用验证组和组序列来控制验证顺序。
信息:如果组序列中定义的组之一失败,组序列将停止验证。
http://beanvalidation.org/1.1/spec/#constraintdeclarationvalidationprocess-groupsequence
如果您使用的是 Hibernate Validator,此 link 也可能有帮助:
https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-groups.html
我有一个 class 是这样的
@MyValidator
class Demo {
@NotNull
Instant startDate
...
}
在 MyValidator 约束的 ConstraintValidator 中,我进行了一个调用,要求 startDate 不为空。
如果 startDate 上的 @NotNull 约束在我的 @MyValidator 约束之前被验证,我不必担心,但在我的测试中,@MyValidator 首先被验证,我得到了一个 NPE。
我如何向调用我的 ConstraintValidator 的验证器指示应在字段级 @NotNull 约束之后验证 @MyValidator 约束,或者我自己显式验证 @NotNull 约束作为我的 ConstraintValidator 实现的第一步?
您可以使用验证组和组序列来控制验证顺序。 信息:如果组序列中定义的组之一失败,组序列将停止验证。
http://beanvalidation.org/1.1/spec/#constraintdeclarationvalidationprocess-groupsequence
如果您使用的是 Hibernate Validator,此 link 也可能有帮助: https://docs.jboss.org/hibernate/validator/5.1/reference/en-US/html/chapter-groups.html