Spring 에서 @Valid로 RequestBody를 체크 과정중,
String 타입에 @Min(글자 길이 검증) 하려 했는데 안되는 현상이 일어났다.
public class CommentCreateRequest {
@NotBlank(message = "내용을 입력해주세요.")
@Min(value= 10, message = "내용은 10자리 이상 입력해주세요.") // Not working
private String content;
}
알아보니 @Max @Min은 숫자 필드에만 적용되는 사실을 알았다.
문자열 필드엔 @Size를 적용해야 한다.
public class CommentCreateRequest {
@NotBlank(message = "내용을 입력해주세요.")
@Size(min = 10, message = "내용은 10자리 이상 입력해주세요.")
// @Size(min = 10, max = 255, message = "내용은 10자리 이상, 255자리 이하로 입력해주세요.")
private String content;
}
@Size는 필드의 범위를 나타내는데 에도 효과적으로 보인다.
참고로 @Size는 String 외에도 Collection, Map, Array 필드를 지원한다.