如何强制 Hibernate Validator 递归(级联)验证字段?
How to force Hibernate Validator to validate fields recursively(cascaded)?
我有以下型号:
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
。如何解决这个问题?
替换
private MyClass myClass;
来自
@Valid
private MyClass myClass;
我有以下型号:
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
。如何解决这个问题?
替换
private MyClass myClass;
来自
@Valid
private MyClass myClass;