在@Constraint中清空validatedBy

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

首先,为什么允许他们为validatedBy设置一个空值? 我认为你可以将它留空仅用于不需要附加validation的约束组合?

另外,请注意Hibernate Validator仍然可以为每个内置约束找到一个validation器实现类,尽管validatedBy是空的,但是如果我将validatedBy留给我的约束,我的自定义validation器永远不会被拾取。 这是为什么?

谢谢。

那些内置的处理以特定的特定于实现的方式处理,并且它们的validation器以编程方式配置。

对于Hibernate Validator,它在ConstraintHelper.java完成。 我认为你的自定义约束不能达到同样的效果。

也许看看这个答案:

由于@Constraint validatedBy,如何避免层之间的交叉依赖?

这两个链接:

以编程方式添加约束: http : //docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-specifics.html#section-programmatic-api

每个xml添加约束: http : //docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-xmlconfiguration.html