에러의 양상은 아래와 같다.
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.math.BigDecimal.
이와 같은 오류는 대체적으로 아래와 같은 이유로 발생한다.
1. @NotEmpty 에서 오류가 발생한다. [해결책] @NotNull 을 이용한다.
2. @DecimalMin 이나 @Min 등에서 오류가 발생한다. [해결책] @NumbeerFormat(style = Style.NUMBER), @Range 을 이용한다.
2번의 경우 @NumberFormat 으로는 Number 인지만 체크할 뿐 범위 체크는 불가능하다. pattern 을 통한 제어를 해보려고 했으나, 무시당하는 기분이다(?). Hibernate 에서 제공하는 @Range 을 통해 범위 제어가 가능하다. 다른 정수/실수형 변수에도 @DeciamlMin 같은 것보다 이걸 쓰는 것을 검토해봐야겠다.
Java 코드 내에서 범위를 한 번 더 체크해야 할 것 같다.
댓글 없음:
댓글 쓰기