2012-03-02 4 views
1

iBatis를 사용하여 DB에서 두 개의 열을 검색하려고합니다. 나는지도처럼 그것을하고 싶다. resultMap.get(col1) == col2Obj.지도로 키 - 값 쌍 검색

동일한 질문에 here을 질문했지만 게시 된 솔루션이 나에게 적합하지 않으며 오류로 인해 실패합니다 : Cannot cast List as Map. 나는 iBatis 2.3.4를 사용하고 있습니다. (?이 버전에서 사용할 수있는이 기능은 내가 관련 문서를 찾을 수없는 것입니다.)

내 문지도 :

<resultMap id="countMap" class="java.util.HashMap"> 
    <result property="key" column="KEY" /> 
    <result property="value" column="VALUE" /> 
</resultMap> 
<select id="getCounts" resultMap="countMap" parameterClass="map"> 
SELECT 
    TYPE AS KEY, 
    SUM(VAL) AS VALUE 
FROM MYTABLE 
WHERE REGDATE BETWEEN #start_date# and #end_date# 
GROUP BY TYPE 
</select> 

실제 쿼리 반환 :

|| KEY || VALUE || 
|| 4 || 304 || 

.toString()를 호출 반환하는지도에 :

{"key" : "4", "value" : "304" } 

키 집합이 { "키 ","value "}, resultMap은 내가 원하는 것을 수행하지 않는 것처럼 보입니다. 두 개 이상의 행이 발생할 수있는 매개 변수를 사용하여 쿼리를 호출 할 때 오류가 발생합니다.

나는 sqlMapClient.queryForMap("mymap.getCounts", args);을 사용하여 쿼리를 실행하고 있습니다.

+0

iBatis를 방법을 사용하는 데 필요한? 사용중인 코드를 게시 할 수 있습니까? 예외도 게시 할 수 있습니까? – nwinkler

답변

0

왓츠, 알겠습니다.

난 당신이 쿼리를 실행하는 데 사용하는

sqlMapClient.queryForMap("mymap.getCounts", args, "key", "value");