2301_78464877 2024-06-24 10:43 采纳率: 50%
浏览 5

xml配置出现报错Result Maps collection does not contain value for com.xxm.mapper.TbZdyymMapper.Map

在进行数据库的查询时,由于需要进行动态查询表,表名不固定,所以没有构建entity的实体类,
所以想将数据库查询的结果集放在List<Map<String, Object>> list中,其中每一个map对应数据库查询的一列,key对应列名,value对应值,如此一来,
查询的方法是
List<Map<String, Object>> getAllData(@Param("tablename")String tablename,@Param("columnMap")HashMap<String, String> columnMap);
其中tablename是表名,columnMap中key是字段名,value是字段别名,单列查询的语句是
select key as value from tablename where del=0

查询就需要xml配置mapper,mapper文件是这样写的,存在一个报错 Result Maps collection does not contain value for com.xxm.mapper.TbZdyymMapper.Map

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxm.mapper.TbZdyymMapper">
        <select id="getAllData" resultMap="Map">
            select
                <foreach collection="columnMap.entrySet()" item="entry" separator=",">
                        #{entry.key} as #{entry.value}
                </foreach>
            FROM #{tablename}
            WHERE DEL = 0
        </select>

</mapper>

请问这个报错怎么解决呢

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-24 10:43
    关注

    引自免费微信小程序:皆我百晓生

    这个问题是由ResultMaps元素中的resultMap属性设置错误引起的。ResultMaps元素用于映射结果到Java对象,而resultMap属性则指定如何处理这些映射。

    在这个例子中,你需要确保columnMap集合中的键(即列名)与columnMap集合中的值(即字段别名)一一对应。例如,如果你有一个名为id的主键,那么你应该将其设置为#{entry.key},而不是#{entry.value}

    正确的XML应该像下面这样:

    <mapper namespace="com.xxm.mapper.TbZdyymMapper">
        <resultMap id="MapResult" type="com.xxm.model.TbZdyym">
            <result property="id" column="id"/>
            <!-- 更多的列 -->
        </resultMap>
    </mapper>
    

    然后,在你的SQL查询中,你可以这样写:

    SELECT id AS value FROM tablename WHERE del=0
    

    这将使id作为value被返回,并且#{$columnMap.get('id')}将自动填充相应的值。这样,你的ResultMaps元素就能正确地映射结果了。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月24日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上