JSR-303 구현으로 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() 호출로 전체 모델을 검사하므로 여기에서는 그룹을 사용할 수 없습니다. 이 규칙을 양식 수준의 사용자 지정 제약 조건으로 쓰지 않고도이 문제를 해결할 수있는 방법이 있습니까?
감사합니다. 그러나이 문제는 양식 수준 (즉, mainOwner 필드 위)에서 맞춤 제약없이 달성 할 수 있는지 여부를 묻고 있습니다. 아마도 이것을 제대로 표현하지 못했을 것입니다. 그러나 당신이 나 자신을 생각한 똑같은 해결책을 제시하고 있기 때문에, 나는 다른 방법이 없다고 생각합니다. 좋습니다, 확실히 ScriptAssert는 할 것이지만, 사용자 정의 유효성 검사기 작성과 거의 같습니다. –
@RodionGorkovenko이 작업을 수행하는 다른 합리적인 방법을 생각할 수 없습니다. 그래서 당신은 당신의 첫 생각을 고수해야합니다. – SpaceTrucker