Database/MyBatis

[MyBatis] For input string: "문자" 오류 해결방법

헹창 2021. 8. 27.
반응형

오류 로그

Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "Y"
### Cause: java.lang.NumberFormatException: For input string: "Y"    
          at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) 
          at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150) 
          at  org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) 
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
          at java.lang.reflect.Method.invoke(Method.java:498)    
          at  org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)
... 89 more

 

원인

이는 MyBatis에서 Dynamic 조건문을 다음과 같이 사용했을 때 나는 에러이다.

<if test="searchKeyword == 'A'">
...
</if>

 

해결방법

문자열을 사용할 때는 큰따옴표로 감싸야하기 때문에, 위 코드에서 작은따옴표와 큰따옴표를 바꿔줘야한다.

<if test='searchKeyword == "A"'>
...
</if>

 

728x90
반응형

댓글

추천 글