mybatis自连接查询子集合(一对多查询)

最近无事,闲暇之余琢磨了一下RBAC权限管理,准备写个Demo演示一下。


写到权限部分的时候,遇到了一个需求。就是查询权限的时候,将该权限的子权限集合一次性全查出来。废话不多说,直接见代码(后台是ssm,下面给出mybatis的代码)。。


  <resultMap id="PermissionViewMap" type="com.yunhui.bean.vo.PermissonView">
    <id column="par_permisson_id" jdbcType="INTEGER" property="permissonId" />
    <result column="par_permisson_name" jdbcType="VARCHAR" property="permissonName" />
    <collection property="childPermissons" ofType="com.yunhui.bean.po.Permisson">
      <id column="child_permisson_id" jdbcType="INTEGER" property="permissonId" />
      <result column="child_permisson_name" jdbcType="VARCHAR" property="permissonName" />
      <result column="child_permisson_url" jdbcType="VARCHAR" property="permissonUrl" />
    </collection>

  </resultMap>

  <select id="listPermissionView" resultMap="PermissionViewMap">
       SELECT  p1.permisson_id par_permisson_id, p1.permisson_name par_permisson_name,p2.permisson_id child_permisson_id, p2.permisson_name child_permisson_name,p2.permisson_url child_permisson_url
       FROM  permisson p1
       LEFT JOIN permisson p2 ON  p1.permisson_id=p2.parent_permisson_id
       WHERE p1.permisson_lv=1
  </select>

这段代码没什么难度的,相信有点mybatis知识的就可以看懂了。。。写在这里仅作为一个记录,方便日后查看。

猜你喜欢

转载自blog.csdn.net/qq_29992111/article/details/78771187
今日推荐