mybatis 注解将参数传递到关联查询中

本文介绍了使用MyBatis进行菜单权限数据查询的方法,包括获取用户的菜单列表及子菜单信息。通过两个SQL查询示例展示了如何根据角色权限来筛选出用户可见的菜单项及其对应的子项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Table of Contents

一、以免失效。截图一张如下。

 二、实际问题。


 参考链接: https://q.cnblogs.com/q/111131/

一、以免失效。截图一张如下。

 二、实际问题。

    @Select("<script>" +
            " SELECT " +
            " sm_id, sm_dataurl, sm_class, sm_code, sm_name, sm_parentcode, sm_sequence, sm_type, sm_time, sm_del, #{srKey} as sy_key " +
            " FROM cloudclass.sys_menu " +
            " WHERE sm_code IN ( SELECT smr_menucode FROM cloudclass.sys_menu_role WHERE smr_rolekey = #{srKey} AND smr_fmenu = 1 AND smr_del = 0 ) AND sm_del = 0 " +
            "</script>"
    )
    @Results({
            @Result(property = "smId", column = "sm_id"),
            @Result(property = "smDataurl", column = "sm_dataurl"),
            @Result(property = "smClass", column = "sm_class"),
            @Result(property = "smClick", column = "sm_click"),
            @Result(property = "smTagtext", column = "sm_tagtext"),
            @Result(property = "smCode", column = "sm_code"),
            @Result(property = "smName", column = "sm_name"),
            @Result(property = "smParentcode", column = "sm_parentcode"),
            @Result(property = "smSequence", column = "sm_sequence"),
            @Result(property = "smType", column = "sm_type"),
            @Result(property = "smTime", column = "sm_time"),
            @Result(property = "smDel", column = "sm_del"),
            @Result(column="{srKey = sy_key, smCode = sm_code}",property="sysMenuList",many=@Many(select="findBySrKetorSmParentcode",fetchType= FetchType.EAGER))
    })
    List<SysMenu> findUserMenus(String srKey);
    @Select("<script>" +
            " SELECT " +
            " sm_id, sm_dataurl, sm_class, sm_click, sm_tagtext, sm_code, sm_name, sm_parentcode, sm_sequence, sm_type, sm_time, sm_del " +
            " FROM cloudclass.sys_menu " +
            " WHERE sm_code IN ( SELECT smr_menucode FROM cloudclass.sys_menu_role WHERE smr_rolekey = #{srKey} AND smr_fmenu = 0 AND smr_del = 0 ) AND sm_del = 0 AND sm_parentcode = #{smCode} " +
            " ORDER BY sm_sequence ASC " +
            "</script>"
    )
    @Results({
            @Result(property = "smId", column = "sm_id"),
            @Result(property = "smDataurl", column = "sm_dataurl"),
            @Result(property = "smClass", column = "sm_class"),
            @Result(property = "smClick", column = "sm_click"),
            @Result(property = "smTagtext", column = "sm_tagtext"),
            @Result(property = "smCode", column = "sm_code"),
            @Result(property = "smName", column = "sm_name"),
            @Result(property = "smParentcode", column = "sm_parentcode"),
            @Result(property = "smSequence", column = "sm_sequence"),
            @Result(property = "smType", column = "sm_type"),
            @Result(property = "smTime", column = "sm_time"),
            @Result(property = "smDel", column = "sm_del")
    })
    List<SysMenu> findBySrKetorSmParentcode(Map<String, String> map);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值