a3rdsw 2022-03-29 15:48 采纳率: 100%
浏览 44
已结题

mybatis的collection写了和没写一样,反正只能查出来user对象

如图只查询了user,collection里面的东西没有被调用

img

xml里的代码

<?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.jkd.student_union.mapper.UserMapper">
    <select id="selectAllUser" resultType="com.jkd.student_union.pojo.User">
        select * from user;
    </select>

    <!--用户信息结果-->
    <resultMap id="mainMap" type="com.jkd.student_union.pojo.User">
        <id column="id" property="id"/>
        <result column="user_name" property="userName"/>
        <result column="password" property="password"/>
        <result column="nick_name" property="nickName"/>
        <result column="sex" property="sex"/>
        <result column="avatar" property="avatar"/>
        <result column="address" property="address"/>
        <result column="student_number" property="studentNumber"/>
        <result column="student_major" property="studentMajor"/>
        <result column="open_id" property="openId"/>
        <result column="status" property="status"/>
        <result column="admin" property="admin"/>
        <result column="student_belong" property="studentBelong"/>
        <result column="student_grade" property="studentGrade"/>
        <result column="phone_number" property="phoneNumber"/>
        <collection select="findRoles" column="id" ofType="com.jkd.student_union.pojo.Role" property="roles"/>
    </resultMap>

<!--角色结果-->
    <resultMap id="roleMap" type="com.jkd.student_union.pojo.Role">
        <id column="id" property="id"/>
        <result column="label" property="label"/>
        <result column="code" property="code"/>
        <collection property="permissions" ofType="com.jkd.student_union.pojo.permission" select="findPermission" column="id"/>
    </resultMap>

<!--获取用户信息-->
    <select id="findByUsername" parameterType="java.lang.String" resultType="com.jkd.student_union.pojo.User">
        select * from user where user_name = #{userName}
    </select>

<!--    根据用户id查询角色-->
    <select id="findRoles" parameterType="int" resultMap="roleMap">
        select * from role where id in (select role_id from user_roles where user_id = #{user_id})
    </select>

<!--    根据角色id查询权限-->
    <select id="findPermission" parameterType="int" resultType="com.jkd.student_union.pojo.permission">
        select * from permission where id in (select permission_id from role_permissions where role_id = #{id})
    </select>


</mapper>

实体类:


public class User implements UserDetails {

    private Long id;

    private String userName;

    private String password;

    private String nickName;

    private Integer sex;

    private String avatar;

    private String address;

    private String studentNumber;

    private String studentMajor;

    private String openId;

    private Boolean status;

    private Boolean admin;

    private Long studentBelong;

    private String studentGrade;

    private String phoneNumber;

    private List<Role> roles;


public class Role {

    private Long id;

    private String label;

    private String code;

    /**
     * 权限菜单
     */
    private List<permission> permissions;

}
  • 写回答

4条回答 默认 最新

  • CSDN专家-sinJack 2022-03-29 15:54
    关注

    你只查询user表的话,就用不上resultMap映射。
    联表查询的时候,才会用上resultMap.
    如果你想查询user的同时查询Role数据的话,就用联表查询,返回的结果是resultMap="mainMap"

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月6日
  • 已采纳回答 3月29日
  • 创建了问题 3月29日

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的