Вы можете использовать группы проверки для выполнения проверок по группам.Подробнее см. Раздел 3.4.Групповая и групповая последовательность в JSR-303 .В вашем примере вы должны сделать что-то вроде:
@NotEmpty(message = "Please specify your post code")
@PostCode(message = "Your post code is incorrect", groups = Extended.class)
private String postCode;
И при проверке вы вызовете проверку для группы по умолчанию, а затем, если ошибок не будет, для группы Extended
.
Validator validator = factory.getValidator();
Set<ConstraintViolation<MyClass>> constraintViolations = validator.validate(myClass, Default.class);
if (constraintViolations.isEmpty()) {
constraintViolations = validator.validate(myClass, Extended.class);
}
Вы можете сделать гораздо больше, используя группы проверки.
В качестве альтернативы можно сделать все проверки (если вы можете себе это позволить), а затем вручную отфильтровать несколько ошибок проверки для одного и того же поля.