문제 상황
Mybatis + MariaDB 연동을 했는데 아무런 이유 없이, 에러 없이 getCount 값을 읽어오지 못하였다.
디버깅을 해보니 내부에 invokeJoinpointUsingReflection Exception이 발생하고 끝나 버렸는데.
문제 파일
test.xml
<select id="getCount" parametertype="java.lang.String" resultType="java.lang.Integer">
SELECT COUNT(*) FROM testvalue
WHERE valueID = #{valueID}
</select>
test.java
@Override public long getCount(String valueID) throws Exception { long cnt = 0; cnt = (long)query.selectOne(Name + "getCount", valueID); return cnt; }
문제 원인
형 변환이 제대로 되지 않은 것이 문제였다.
test.java에서 보듯, count 한 값은 long 형으로 받게 되어 있다.
하지만 test.xml의 resultType은 integer 형으로 되어 있어서 에러가 발생한 것 같다.
문제 해결
test.xml
<select id="getCount" parameterType="java.lang.String" resultType="java.lang.Long">
SELECT COUNT(*)
FROM testvalue
WHERE valueID = #{valueID}
</select>
[Maven] Dependency Scope 종류 (0) | 2015.11.23 |
---|---|
[Maven] Websocket 연동 시 java.lang.ClassCastException 에러 (0) | 2015.11.23 |
[MyBatis] PersistenceException 에러 (0) | 2015.06.15 |
[Oracle] DEFAULT ON NULL (0) | 2014.01.21 |
ORA-38104: Columns referenced in the ON Clause cannot be updated (0) | 2013.12.18 |
댓글 영역