1

如何在 aConstraintValidator内执行 a ConstraintValidator

我有一个自定义,每种类型都有一个自定义,它工作正常@NotEmptyConstraintValidator

ConstraintValidator现在我想创建一个类级约束,使用我已经拥有的那些自定义字段检查至少一个指定字段是否为空。约束部分(@ClassNotEmpty)已经完成,但问题是ConstraintValidator实现。如何获取ConstraintValidator给定约束的实例?IE

isValid(Object value, ConstraintValidatorContext constraintValidatorContext)  {
    String[] fieldValues = getFieldValues(value, this.classNotEmpty.fieldNames());

    for (String fieldValue : fieldValues) {
        <What do I put here?>.isValid(fieldValue, constraintValidatorContext);
    }
}

有没有办法在不将验证例程拉到辅助类的情况下做到这一点?

顺便说一句,我正在使用 Spring 和 Hibernate Validator。

4

2 回答 2

1

经过进一步研究,似乎没有已知的解决方案来获取ConstraintValidator给定约束的实例,无论是否可移植。辅助类似乎是做到这一点的唯一方法。

于 2010-12-24T02:57:55.607 回答
0

我没有面前的信息,但我记得读过一些关于由其他验证器组成的验证器的东西。因此,如果您有两个验证器 A 和 B。您可以定义由另外两个组成的第三个“C”。搜索 doco,你应该找到它。

刚刚做了一个搜索,阅读这个:http ://docs.jboss.org/hibernate/stable/validator/reference/en-US/html/validator-customconstraints.html#validator-customconstraints-compound

这可能是您正在寻找的东西。

于 2010-12-22T23:47:27.233 回答