java - 从 IBatis 获取 Map<String,CustomData>

标签 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>

任何想法!

最佳答案

您应该尝试将 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/

相关文章:

java - 如何使用 TextPad 增加堆大小

c# - 用于 asp.net 网格分页的 SQL 查询

mybatis - 由 : org. apache.ibatis.ognl.NoSuchPropertyException 引起:

java - 为什么 myBatis 插入/更新函数现在需要在将 FK 添加到数据库后提交?

sql - ibatis 返回值

java - 如何删除依赖项 : maven sub-modules creates implicit dependency on parent module

java - CountDown Timer OnTick 方法在我给时间时不起作用

java - Spring 和工厂对象

java - 使用 XML 进行改造 - 元素在类中没有匹配项

ibatis - 在不使用复杂对象的情况下将多个参数传递给SELECT