에러모음
HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' 에러 수정.
코딩하는흑구
2022. 9. 27. 14:28
HTTP Request 요청 정보중에서
- Query Param
- Request Body
위 두가지의 유효성 검사를 위해서 javax.validation.contraints 패키지 내의 @NotNull, @NotEmpty, @NotBlank 등의 어노테이션을 활용하는 경우가 있다.
@NotNull은 Nullable한 타입에 선언해야하는데.. 왜냐하면 int나 char 같은 primitive 타입은 null을 포함할 수 없기 때문이다.
이와 마찬가지로 @NotBlank와 @NotEmpty도 마찬가지로 유효성 검사를 진행할 수 있는 타입이 존재한다.
@NotBlank
단 하나의 공백 문자열도 포함하지 않는다. -> 오로지 문자열에 해당함.(String, CharSequance)
주석내용 : The annotated element must not be null and must contain at least one non-whitespace character.
@NotEmpty
- CharSequence (length of character sequence is evaluated)
- Collection (collection size is evaluated)
- Map (map size is evaluated)
- Array (array length is evaluated)
empty의 경우 empty라는 키워드가 들어갈 수 있는 컬렉션이라던가 문자열 타입만 사용할 수 있다.
나의 경우 @NotBlank 어노테이션을 enum 클래스에 선언하여 아래와 같은 에러를 뱉어냈다.
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'com.xxx.xxx.enums.SignableRoomSearchKeywordType'. Check configuration for 'keywordType'
keywordType 이라는 enum 변수에 @NotBlank를 사용하니 해당 타입을 validate할 수 있는 validator가 없다는 에러를 낼 수 밖에 없다.
해당 내용에 대해서 에러메시지를 보고 바로 생각할 수 있었어야 했는데 시야가 너무 좁게 일하고 있는 것 같다..ㅠㅠ
주의하자