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后解决问题。

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

猜你喜欢

转载自blog.csdn.net/qq_41120971/article/details/108771227