我注意到,所有内置约束的中的validatedBy参数都有一个空值@Constraint。即@Constraint(validatedBy = {})
validatedBy
@Constraint
@Constraint(validatedBy = {})
首先,为什么允许它们的值为空validatedBy?我以为您可以仅对不需要附加验证的约束组合将其留空?
另外,请注意,尽管的validatedBy值为空,但Hibernate Validator仍可以为每个内置约束找到一个验证器实现类,但是如果我为约束将validatedBy留为空白,则我的自定义验证器将永远不会被使用。这是为什么?
谢谢。
那些内置程序以特定于实现的特殊方式处理,并且其验证器以编程方式进行配置。
对于Hibernate Validator,它已在中完成ConstraintHelper.java。我认为您无法针对自定义约束实现相同的目标。
ConstraintHelper.java