티스토리 뷰

[스프링,MyBatis] java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String 

아 테스트할때 에러가 안나서 잘 되는지 알았는데 나중에 알고 보니 null을 리턴해서 되는 거였다. 

하지만 제대로 String 값이 있을 경우는 

java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String 

이런 에러가 났었다. 

흠.. 제대로 코딩, 확인, 테스트 안하고 했을때는 이런 예상치 못한 재앙(?)이 올 수 있다.

MyBatis 코딩할 시 그냥 기존거 복사해서 했더니 제대로 resultType을 못봐서.. ㅜㅜ 

<select id="getXX" resultType="Map"> 
을 
<select id="getXX" resultType="String"> 

이렇게 써주니까 될줄 알았는데.. 안됐다.. 

별 삽질을 다 해봤다. 이상하다.. 기존에  

<select id="getXX" resultType="String"> 

이렇게 쓴것도 있는데 왜 안되지.. 

그래서 그냥  

<select id="getXX" resultType="Map"> 

이렇게 써야 하나 생각하다가 

<select id="getXX" resultType="java.lang.String"> 

이렇게 하니까 되었다. 

java.lang을 붙여줘야 하나.. 아니 기존에 String만 쓴것도 있는데.. 

다시 

<select id="getXX" resultType="String"> 

이렇게 하니까 이제야 되었다. 

흠.. 

뭔가 이클립스에서 갱신이 잘 안되었던것 같다. 

이클립스를 껏다가 켜봤는데도 안되던데... 

클린(Clean)을 한번 해볼걸 그랬나... 


여기서 갑자기 드는 생각이 resultType을 안넣어도 되나? 하는 의문이 들어 해봤다. 

org.mybatis.spring.MyBatisSystemExeption: nested exception is org.apache.ibatis.executor.ExecutorException: 

A query was run and no Result Maps were found for the Mapped Statement 'com.xx.xxx'. 

It's likely that neither a Result Type nor a Result Map was specified. 

에러메시지에 답이 나와 있다. 

Result Type 이나 Result Map이 없는것 같아 보인다. 

결론은 select 에서는 Result Type 이나 Result Map은 반드시 써야 하는것 같다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함