• MyBatis 的小细节问题


    mybatis Result Maps collection already contains value 

    这是个小功能,我当时没有怎么在意,后来发到了测试环境的时候测试提出了bug,我才慌忙查看原因,


    <select id="getRoleInfo" parameterType="java.lang.String" resultMap="
    com.hupu.smart.game.platform.dto.common.RoleInfo" >
            SELECT r.id,r.`name` FROM gamedb.game_platform_role r,gamedb.game_platform_user_role u
    WHERE u.role_id = r.id AND u.user_id = #{userId}
    </select>


     这是我最开始写的mapper  , 查询是两个表的连接查询,返回的结果我是用一个dto对象来封装的,后来我发现,如果这 个对象的字段和数据库的字段 一样的话,就可以用resultMap="RoleInfo"  ,当实体类的字段存在和数据库的字段不一样的情况的时候,就不能用resultMap 来封装查询出的数据了。我在调试的时候看到List是有三条数据,但是数据的内容是看不到的,我当时以为有数据及可以了。可是。。

       后来,这个问题以bug的形式提交给我的时候,我才发现原来是数据有问题,我debugger 的时候查看 返回的list 提示 “”所有基础都是空的“” 

    后来 我把mapper  添加了一个resultMap   

    <resultMap type="com.hupu.smart.game.platform.dto.common.RoleInfo" id="roleMap">
    <id column="id" property="roleId"/>
    <result column="name" property="roleName"/>
    </resultMap>

    <select id="getRoleInfo" parameterType="java.lang.String" resultMap="roleMap" >
    SELECT r.id,r.`name` FROM gamedb.game_platform_role r,gamedb.game_platform_user_role u
    WHERE u.role_id = r.id AND u.user_id = #{userId}
    </select>

    同时 resultType也要改成resultMap 这样才能完全正确的显示数据
  • 相关阅读:
    NOIP2002字串变换[BFS]
    NOIP2000单词接龙[DFS]
    NOIP2003传染病控制[按层DFS]
    NOIP1999邮票面值设计[搜索|DP]
    USACO1.1Broken Necklace[环状DP作死]
    洛谷P1120小木棍[DFS]
    NOIP2000进制转换
    Miller-Rabin素数快速检测
    【数论算法理论与实现】
    洛谷P1141 01迷宫
  • 原文地址:https://www.cnblogs.com/murong/p/5826278.html
Copyright © 2020-2023  润新知