我正在创建一个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>
任何想法!
答案 0 :(得分:3)
您应该尝试将resultClass
标记中的select
属性替换为resultMap
,其值为"dataMap"
,如下所示:
<select id="fetchData"
resultMap="dataMap"
parameterClass="java.util.Map">
<!-- your query -->
</select>
在您的情况下,queryForList
方法尝试实例化java.util.HashMap
而非此方法,它应使用您在上面定义的dataMap
映射。