org.apache.ibatis.type.TypeException 오류 해결 방법 2가지

java에서 myBatis 를 이용해서 DB에 데이터를 insert 또는 update 할 때 org.apache.ibatis.type.TypeException 오류가 나는 경우가 있는데 해결 방법 2가지를 알려드립니다.


JdbcType 지정

에러 메세지에 보면 jdbcType=null 으로 나타나고 있거나 JDBC-90609 으로도 나옵니다.
쿼리에 명시적으로 jdbcType을 지정해주시면 되는데 아래의 내용을 참고하시고 해보세요.

기존 : #{name} 
수정 : #{name, jdbcType=VARCHAR}


주석제거

쿼리문 중간에 있던 일부 구문을 주석처리 했는데 갑자기 안되는 경우도 있습니다.
저같은 경우는 아래의 내용 처럼 주석이 원인이 되어 있어서 제거하니까 잘 되었네요.

기존(주석처리 때문에 오류남) : 
--AND Title = #{title}
AND RegDate = TO_DATE('20240901')

수정 : 
AND RegDate = TO_DATE('20240901')


마치며

오류 메세지가 다음과 같이 나오면 위 2가지 방법을 써보시기 바랍니다.
Cause: org.apache.ibatis.type.TypeException:
Error setting non null for parameter #6 with JdbcType null .
Try setting a different JdbcType for this parameter or a different configuration property.
Cause: java.sql.SQLException: JDBC-90609:Invalid column index.