[iBatis] 오라클 NUMBER 타입 컬럼 처리 시 java.math.BigDecimal cannot be cast to java.lang.String 발생
Digilog2011. 1. 25. 10:23
오라클 NUMBER 형 컬럼의 데이터를 HashMap 타입으로 받아
java에서 사용하려고 하니
java.math.BigDecimal cannot be cast to java.lang.String 오류가 발생하더군요.
사용된 iBatis 문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <select id="SQL-VIEW" parameterClass="java.util.Map" resultClass="java.util.HashMap"> SELECT ID ,COMMUNITY_ID ,TITLE ,TYPE_CODE ,LIST_ORDER ,PAGE_SIZE ,HYPERLINK_URL ,AUTH_WRITE ,AUTH_READ ,IS_OPEN ,TO_CHAR(REG_DATE, 'YYYY.MM.DD HH24:MI') REG_DATE ,TO_CHAR(UPT_DATE, 'YYYY.MM.DD HH24:MI') UPT_DATE FROM COMMUNITY_MENUS WHERE ID = #menuID# AND IS_DELETE = 'N' </select> | cs |
오류가 발생한 java 문
String pageSize = (String) mnuMap.get("PAGE_SIZE"));
NUMBER 타입을 곧바로 String으로 캐스트 변환하려고 하니 생기는 문제였습니다.
캐스트 변환을 하지 않고,
String 클래스의 valueOf (Object) 메소드를 이용해 처리하면
문제 해결할 수 있습니다.
수정된 java 문
String pageSize = String.valueOf(mnuMap.get("PAGE_SIZE"));
작게나마 도움 되시길~ ^^
크게 도움이 되었습니다. int 변환 후 다시 String변환 처리도 안먹혀서 고민하고 있었는데 왜 이걸 생각하지 못했나
자책이 들 정도로 한방에 해결 되었습니다. ^_^
도움 되셨다니 다행입니다.. 좋은 하루 되세요 ^^
완전 감사합니다.~~ 캬캬캬
하나 배우고 가네요~
ㅎㅎ 댓글 감사합니다 ^^ 도움 되셨길 바랍니다 ^^