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