【问题标题】:How to force Hibernate Validator to validate fields recursively(cascaded)?如何强制 Hibernate Validator 递归地验证字段(级联)?
【发布时间】:2015-11-30 20:51:58
【问题描述】:

我有以下型号:

class EmailWrapper {

    @Email
    private String subscriptionEmail;

    private MyClass myClass;
    //get and set
}


class MyClass {
    @Size(min = 12)
    private String str = "short";
    //get and set
}

以下代码:

EmailWrapper emailWrapper = new EmailWrapper();
emailWrapper.setSubscriptionEmail("qq@gmail.com");
emailWrapper.setMyClass(new MyClass());
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<EmailWrapper>> constraintViolations = validator.validate(emailWrapper);
System.out.println(constraintViolations.size());

如您所见,emailWrapper.myClass.str 违反了@Size(min = 12)

但我在控制台中看到0。如何解决这个问题?

【问题讨论】:

    标签: java bean-validation hibernate-validator


    【解决方案1】:

    替换

    private MyClass myClass;
    

    通过

    @Valid
    private MyClass myClass;
    

    【讨论】:

    • 为了提供一些背景知识,参考指南中的this section 讨论了级联验证。它也适用于集合/数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2011-01-05
    • 2010-12-30
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多