【发布时间】:2019-08-10 11:46:45
【问题描述】:
我有 2 个域类,例如 ParentClass 和 ChildClass。
(ParentClass 包含 Array 列表中的 Child 类对象的列表。)
我为 ParentClass 和 ChildClass 创建了单独的 Validator 类来进行自定义验证。
Parent 类的示例验证器类:
public class ParentClassValidator implements
ConstraintValidator<ValidatedByParentClassInterface, ParentClass> {
然后覆盖ConstraintValidator的isValid()方法,
@Override
public boolean isValid(final ParentClass parentClass,
final ConstraintValidatorContext constraintValidatorContext) {
Child 类的示例验证器类:
public class ChildClassValidator implements
ConstraintValidator<ValidatedByChildClassInterface, ChildClass> {
然后覆盖ConstraintValidator的isValid()方法,
@Override
public boolean isValid(final ChildClass childClass,
final ConstraintValidatorContext constraintValidatorContext) {
//No option to pass Parent class object here?
我的 Child 类中的一个字段需要根据 Parent 类中字段的值进行验证。但是 ConstraintValidator(https://docs.oracle.com/javaee/7/api/javax/validation/ConstraintValidator.html) 的 isValid() 方法只有 2 个参数,那么如何在 ChildClassValidator 中传递 ParentClass 对象?
或者我应该在我的 ParentClassValidator 中使用 for 循环来验证这个场景吗?
【问题讨论】:
标签: java bean-validation