从IBatis </string,customdata>获取Map <string,customdata>

时间:2013-01-15 23:31:49

标签: java ibatis

我正在创建一个ibatis问题,结果应该是:

Map<String,CustomData>

我的ibatis查询:

<resultMap id="dataMap" class="java.util.HashMap">
    <result property="key" column="UUID"/>
    <result property="value" resultMap ="customData"/>
</resultMap>

<resultMap id="customData" class="com.model.CustomData">
    <result property="x" column="X_COL"/>

</resultMap>

<select id="fetchData"
        resultClass="java.util.HashMap"
        parameterClass="java.util.Map">
   SELECT
    UUID AS UUID,
    (CASE
    WHEN SOME_DATA IS NOT NULL THEN  'TRUE'         
    END) AS X_COL
    FROM TABLE
 </select>

CustomData是一个java类:

public class CustomData{
 private String x;

//Getters & Setters

}

我希望在Java上获得以下内容:

Map<String,CustomData>

但是我得到以下内容:

Map<String,String>

任何想法!

1 个答案:

答案 0 :(得分:3)

您应该尝试将resultClass标记中的select属性替换为resultMap,其值为"dataMap",如下所示:

<select id="fetchData"
    resultMap="dataMap"
    parameterClass="java.util.Map">
<!-- your query -->
</select>

在您的情况下,queryForList方法尝试实例化java.util.HashMap而非此方法,它应使用您在上面定义的dataMap映射。