空验证通过在 @Constraint

我注意到所有内置约束对 中的参数都有一个空值。即validatedBy@Constraint@Constraint(validatedBy = {})

首先,为什么允许它们具有空值 ?我以为您只能将其留空,用于不需要额外验证的约束组合?validatedBy

另外,请注意,尽管是空的,但休眠验证程序仍然可以为每个内置约束找到一个验证程序实现类,但是如果我为约束保留 validatedBy 空白,我的自定义验证程序永远不会被拾取。为什么?validatedBy

谢谢。


答案 1

这些内置内容以特定于实现的特殊方式进行处理,其验证程序以编程方式进行配置。

对于Hibernate Validator,它是在 ConstraintHelper 中完成的.java。我认为您无法为自定义约束实现相同的目标。


推荐