[java] Hibernate Validator를 사용하여 필수 필드 유효성 검사를 수행하는 방법은 무엇인가요?
import javax.validation.constraints.NotEmpty;
public class User {
@NotEmpty(message = "이름을 입력해주세요.")
private String name;
// ...
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
위의 예제에서 @NotEmpty
어노테이션은 name
필드가 비어있지 않아야 함을 나타냅니다. 만약 이 조건을 만족하지 않는다면, Hibernate Validator는 유효성 검사에 실패할 것입니다. 이 때 message
속성을 사용하여 오류 메시지를 지정할 수 있습니다.
다음은 유효성 검사를 수행하는 코드 예시입니다.
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.ConstraintViolation;
import java.util.Set;
public class Example {
public static void main(String[] args) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
User user = new User();
user.setName("");
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
}
}
위의 코드에서 validator.validate(user)
메서드를 사용하여 유효성 검사를 수행합니다. 유효성 검사가 실패한 경우, violations
변수에 실패한 제약 조건의 정보가 담깁니다. 이후 반복문을 통해 각 실패한 제약 조건의 메시지를 출력할 수 있습니다.
참고 문서:
- Hibernate Validator: https://hibernate.org/validator/
- Bean Validation with Hibernate Validator: https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/