如何在ConstraintValidator
内执行ConstraintValidator
?
我有一个自定义@NotEmpty
并且每种类型都有一个自定义ConstraintValidator
,并且工作正常。
现在我想创建一个类级别约束,使用我已经拥有的那些自定义ConstraintValidator
来检查至少一个指定字段是否为空。约束部分(@ClassNotEmpty
)已完成,但问题是ConstraintValidator
实现。如何获取给定约束的ConstraintValidator
实例?即。
isValid(Object value, ConstraintValidatorContext constraintValidatorContext) {
String[] fieldValues = getFieldValues(value, this.classNotEmpty.fieldNames());
for (String fieldValue : fieldValues) {
<What do I put here?>.isValid(fieldValue, constraintValidatorContext);
}
}
有没有办法在不将验证例程提升到辅助类的情况下执行此操作?
BTW,我正在使用Spring和Hibernate Validator。
答案 0 :(得分:1)
在进一步研究之后,似乎没有已知的解决方案来获得给定约束的ConstraintValidator
实例,可移植或不可移植。辅助类似乎是唯一的方法。
答案 1 :(得分:0)
我没有在我面前的信息,但我记得读过一些由其他验证器组成的验证器。因此,如果您有两个验证器A和B.您可以定义第三个'C',它由另外两个组成。通过doco狩猎,你应该找到它。
这可能就是你要找的东西。