Hibernate Validator
을 사용하여 요청 개체의 유효성을 검사하려고합니다.유효성 검사 그룹을 기반으로 동일한 필드에서 다른 유효성 검사
간단한 예제로, 유효성을 검사하려는 객체의 클래스가 필드 인 경우 B
은 String name
필드를 가진 다른 클래스입니다.
그 이유 때문에 사용자 정의 MyValidator implements ConstraintValidator
클래스에 연결된 사용자 정의 Constraint Annotations
을 구현했습니다.
DTO 클래스
@AclassValidate(groups = {Operations.Insert.class, Operations.Update.class javax.validation.groups.Default.class})
public class A {
@BclassValidate(groups = {Operations.Insert.class, Operations.Update.class})
private B bObj;
// setters, getters
}
의 엔드 포인트 메소드 서명 (유효성 검사기가 호출됩니다, 활성 그룹 설정) :
@PostMapping("/test")
public A createA(
@Validated(value = Operations.Insert.class)
// @Validated(value = Operations.Update.class)
@RequestBody A a
)
내 Validator 클래스
public class BclassValidator implements ConstraintValidator<BclassValidate, B> {
public void initialize(BclassValidate constraintAnnotation) {
}
public boolean isValid(B b, ConstraintValidatorContext constraintContext) {
boolean valid = true;
// Get active group here
activeGroup = ..?
if (activeGroup == Operations.Insert.class) {
// check if b.getName() equals to "John"
}
else if (activeGroup == Operations.Update.class) {
// check if b.getName() equals to "Doe"
}
return valid;
}
}
내가 달성하고자하는 것은 활성 그룹을 기반으로 동일한 필드에 대해 다른 유효성 검사를 적용하는 것입니다. 활성 그룹은 @Validated
주석으로 설정된 그룹입니다. 질문은 값에 따라 다른 유효성 검사를 적용하기 위해 활성 그룹을 어떻게 검색 할 수 있습니까?