728x90
반응형
java.lang.ClassCastException: java.math.BigDecimal
먼저 클래스캐스트 익셉션이 떨어지는 경우는 다양하다
다른 경험자들의 이야기로는 메모리내에 같은 클래스가 두번 적재되어 떨어지는 경우가 있다고 했다.
하지만 이번 내가 겪은 익셉션은 타입(Type)의 미스매치(miss match)였다.
현 상황은 db에서 결과 값을 가져와 hash map에 담은 다음 맵에서 값을 빼온 다음
다시 DB로 결과값을 요청하는 과정에서 발생됐다.
migList = onMgr.getOn((String)map.get("MEMBER"));
migList 라는 리스트에 ibatis에서 getOn라는 id값을 갖은 쿼리를
(String)map.get("MEMBER")라는 변수를 던져 주어 결과 값을 받으려 했다.
문제는 이 해시맵에 담겨져 있던 MEMBER_SEQ라는 칼럼이 숫자였다.
Queryforlist 는 숫자를 bigdecimal형으로 리턴한다는걸 모르고 있었기에 발생한 exception 이었다.
최종 수정문은 다음과 같다.
meqStr = (BigDecimal)map.get("MEMBER");
migList = onMgr.getOn(meqStr.toString());
728x90
반응형
'JAVA > Debug' 카테고리의 다른 글
The processing instruction target matching "[xX][mM][lL]" (0) | 2014.08.08 |
---|---|
QueryForObject 의 Null 처리 방법 (0) | 2014.08.08 |
java 1.4 + tomcat 5.5 연동 error (0) | 2014.08.08 |
Oracle, toad 관련 오류 메세지 (0) | 2014.08.08 |
[Java]java.lang.NumberFormatException: For input string: "" (0) | 2014.08.08 |
java.lang.ClassCastException: java.math.BigDecimal 처리하기 (0) | 2014.08.08 |
libclntsh.a(shr.o) could not be loaded (0) | 2014.05.20 |
class javax.mail.SendFailedException: 550 5.7.1 Unable to relay for (0) | 2014.02.12 |