我使用 Hibernate Validator 作为 JSR-303 实现。
假设我有:
class Form {
@Valid
private Owner mainOwner;
@Valid
private Owner secondOwner;
// ... many other fields
}
class Owner {
@DriverLicenseValid // some custom validation
private String driverLicense;
// ... many other fields
}
// ...
Form myForm;
validator.validate(myForm);
看,我想验证整个表单,它包含两个相似的所有者类型的子对象。问题是对于 mainOwner driverLicense 应该是 @NotNull 而对于 secondOwner 它应该是 @Null。
我不能在这里使用组(可以吗?),因为整个模型是由单个 validate() 调用检查的。有没有办法在不将此规则编写为表单级别的自定义约束的情况下解决此问题?