美文网首页工作生活
将数据库不存在的字段映射到实体类

将数据库不存在的字段映射到实体类

作者: 帮我的鸵鸟盖个章 | 来源:发表于2019-07-03 15:27 被阅读0次

    User的实体类增加了一个属性roleNames,这个属性在数据库是没有对用字段的,也是需要用mysql语句查出来的,这个时候要怎么将数据库查出来的roleNames数据映射到UserroleNames属性上,今天早上短路了20分钟,竟然不知道怎么弄,脑袋里怕都是浆糊了。

    其实很简单,在mysql语句中将查出来的roleNames取别名role_names,然后将这个别名映射到User实体类中,OK!

    映射:

    <resultMap type="SysUser" id="SysUserResult">
        <id property="userId"       column="user_id"      />
        <result property="roleNames" column="role_names" />
        <result property="deptId"       column="dept_id"      />
        <result property="loginName"    column="login_name"   />
        <result property="userName"     column="user_name"    />
    </resultMap>
    

    取别名:

    <select id="listSysUserUnderRole" parameterType="long" resultMap="SysUserResult">
        select  u.*,temp.roleNames as role_names
        from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
        left join sys_user_role ur on u.user_id = ur.user_id
        left join sys_role r on r.role_id = ur.role_id
        join 
            (
                select ur.user_id, group_concat(DISTINCT r.role_name separator '/') as roleNames from            sys_user_role ur
                join sys_role r
                on r.role_id=ur.role_id
                where r.del_flag='0' group by ur.user_id
            )temp
        on temp.user_id = u.user_id
        where
        u.del_flag='0'
        and r.role_id=#{roleId}
    </select>
    
    

    相关文章

      网友评论

        本文标题:将数据库不存在的字段映射到实体类

        本文链接:https://www.haomeiwen.com/subject/tvzqhctx.html