2012-03-02 9 views
1

iBatisを使用してDBから2つの列を取得しようとしています。私はそれを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は私がしたいことをしているようには見えません。 1行以上の結果となるパラメータでクエリを呼び出すと、エラーが発生します。

私はsqlMapClient.queryForMap("mymap.getCounts", args);を使用してクエリを実行しています。

+0

iBatisのメソッドを使用するために必要な?使用しているコードを投稿できますか?例外も投稿できますか? – nwinkler

答えて

0

Wups、私はそれを得た。

は、私はあなたがクエリを実行するために使用している

sqlMapClient.queryForMap("mymap.getCounts", args, "key", "value"); 
関連する問題