다이나믹쿼리 if문 한글자 비교 에러(NumberformatException)
다이나믹쿼리에서 if문을 사용하는데 NumberformatException이 발생했다.
<if test="saleSta == 'S'">
AND SALE_STA = 'S'
</if>
아무리 봐도 에러 날 곳이 없는데..
찾아보니 MyBatis에서 한글자 비교인 경우엔 'S'를 Char 형으로 인식, NumberFormat으로 비교를 시도하여 Exception이 발생한다고 한다.
MyBatis 문제는 아니고 OGNL(Object Graph Navigation Language) 의 문제라고 한다.
-- OGNL : 자바가 아닌 곳에서 자바를 쓰고 싶을 때 쓰는 언어 ex) xml에서 java 사용
해결방법
1> 더블쿼터(")와 싱글쿼터(') 위치 변경
<if test='saleSta == "S"'>
AND SALE_STA = 'S'
</if>
2> 더블쿼터(")를 HTML 코드로 변경
<if test="saleSta == "S"">
AND SALE_STA = 'S'
</if>
3> 함수 사용
<if test="saleSta == 'S'.toString()">
AND SALE_STA = 'S'
</if>
개인적으로 1번을 추천한다 :)
Author And Source
이 문제에 관하여(다이나믹쿼리 if문 한글자 비교 에러(NumberformatException)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ddingmun8/MyBatis-다이나믹쿼리-if문-한글자-비교-에러NumberformatException저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)