<resultMap id="exampleMap" type="返回实体类类型">
<result property="id" column="id" />
<result property="pid" column="pid"/>
<result property="title" column="title"/>
<result property="icon" column="icon"/>
<result property="href" column="href"/>
<collection property="children" select="selectShowMenuByUser" column="{parentId = id,userId = myuserId}">
</collection>
</resultMap>
<select id="selectShowMenuByUser" resultMap="exampleMap" parameterType="java.util.Map">
SELECT
distinct m.id as "id",
m.parent_id as "pid",
m.name as "title",
m.icon as "icon",
m.href as "href",
m.sort,
#{userId} as "myuserId"
FROM
(select * from sys_menu) m
LEFT JOIN sys_role_menu srm on srm.menu_id = m.id
LEFT JOIN sys_role r on r.id = srm.role_id
LEFT JOIN sys_user u on u.role_id = r.id
WHERE
u.id = #{userId}
<choose>
<when test="parentId != null and parentId !='' ">
and m.parent_id = #{parentId}
</when>
<otherwise>
and m.parent_id is NULL
</otherwise>
</choose>
and m.is_show = true
order by m.sort asc ,m.id desc
</select>
递归查询菜单,以及关联查询传多个参数
最新推荐文章于 2021-06-25 17:41:20 发布