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
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,