我正在创建一个 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>
任何想法!
最佳答案
您应该尝试将 select
标记中的 resultClass
属性替换为 resultMap
和 "dataMap"
像这样的值:
<select id="fetchData"
resultMap="dataMap"
parameterClass="java.util.Map">
<!-- your query -->
</select>
在你的情况下,queryForList
方法尝试实例化一个 java.util.HashMap
而不是这个,它应该使用 dataMap
映射你定义如上。
关于java - 从 IBatis 获取 Map<String,CustomData>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348887/