Mybatis多表联查List集合只有一个值

问题描述

查询user表的时候,联查role表,role是一个list集合,数据库有两个值,但是查询出来只有一个值。

<resultMap id="ItemResult" type="com.hht.csgo.domain.MyUser">
        <id property="id" column="id"/>
        <result property="username" column="username"/>
        <result property="password" column="password"/>
        <result property="money" column="money"/>
        <result property="enable" column="enable"/>
        <result property="lastLogin" column="last_login"/>
        <result property="stockId" column="stock_id"/>
        <result property="createTime" column="create_time"/>
        <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />
    </resultMap>

    <resultMap id="RoleResult" type="com.hht.csgo.domain.Role">
        <id property="id" column="id"/>
        <result property="roleName" column="role_name"/>
    </resultMap>

    <select id="selectUserByUsername" resultMap="ItemResult">
        select u.*,r.role_name,r.id from csgo_user u
            left join csgo_user_role ur on ur.uid=u.id
            left join csgo_role r on r.id=ur.rid
            where u.username=#{username}
    </select>

在这里插入图片描述

问题解决

发现应该是因为role的id与主表id同名,导致覆盖掉了一个数据,将role的id设置为rid后解决问题。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值