1

我正在创建一个 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>

有任何想法吗 !

4

1 回答 1

3

您应该尝试将标签resultClass中的属性替换为a值,如下所示:selectresultMap"dataMap"

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

在您的情况下,该queryForList方法尝试实例化 ajava.util.HashMap而不是这个,它应该使用dataMap您在上面定义的映射。

于 2013-01-16T00:19:52.183 回答