[java] Hibernate Validator를 사용하여 유효성 검사 결과를 객체에 어떻게 저장하나요?
  1. 유효성 검사를 수행할 대상 객체를 생성합니다.
public class User {
    @NotBlank(message = "이름은 필수 입력 사항입니다.")
    private String name;

    @Min(value = 18, message = "나이는 18세 이상이어야 합니다.")
    private int age;

    // 생성자, 게터 및 세터 등 필요한 코드 작성
}
  1. Hibernate Validator의 Validator 인터페이스를 사용하여 유효성 검사 결과를 저장합니다.
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.ConstraintViolation;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        User user = new User();
        user.setName("");
        user.setAge(15);

        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();
        Set<ConstraintViolation<User>> violations = validator.validate(user);

        for (ConstraintViolation<User> violation : violations) {
            String property = violation.getPropertyPath().toString();
            String message = violation.getMessage();
            // 유효성 검사 결과를 객체에 저장하거나 다른 작업을 수행
        }
    }
}

위의 예제에서는 validate() 메소드를 호출하여 유효성 검사를 수행하고, violations 변수에 결과를 저장합니다. violations 변수에는 ConstraintViolation 객체의 집합이 포함되어 있으며, 각각의 ConstraintViolation 객체는 유효성 검사를 위반한 속성 경로(getPropertyPath())와 메시지(getMessage())를 포함하고 있습니다.

이제 ConstraintViolation 객체의 속성 경로와 메시지를 활용하여 유효성 검사 결과를 객체에 저장하거나 다른 작업을 수행할 수 있습니다. 예를 들어, 위의 코드에서는 간단히 결과를 콘솔에 출력하도록 처리하였습니다.

참고 문서: