在@Constraint中清空validatedBy
我注意到所有内置约束对@Constraint
的validatedBy
参数都有一个空值。 即@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