Mybatis 递归查询

时间:2020-01-17 17:23:30   收藏:0   阅读:520

简介:适合用于上下级关系查询,如菜单类,部门类等等

1. VO响应对象

package com.ruhuanxingyun.entity;

import lombok.Data;

import java.util.List;

/**
 * @description: 分组分支树
 * @author: ruphie
 * @date: Create in 2020/1/17 15:22
 * @company: ruhuanxingyun
 */
@Data
public class GroupHostVo {

    /**
     * ID
     */
    private Long id;

    /**
     * 父ID
     */
    private Long parentid;

    /**
     * 名称
     */
    private String name;

    /**
     * 子集
     */
    private List<GroupHostVo> children;

}

2. mapper.xml文件mysql

  <!-- 级联查询返回模型 -->
    <resultMap id="groupHostMap" type="com.ruhuanxingyun.GroupHostVo">
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="parentId" jdbcType="BIGINT" property="parentid"/>
        <result column="name" jdbcType="VARCHAR" property="name"/>
        <collection column="id" property="children" ofType="com.ruhuanxingyun.GroupHostVo" select="findHostListById"/>
    </resultMap>

    <!-- 级联查询分组数据 -->
    <select id="findGroupHostTree" resultMap="groupHostMap">
        select 0 as parentId, id, `name` from group where flag = 0
    </select>

    <!-- 级联查询分支数据 -->
    <select id="findHostListById" parameterType="long" resultMap="groupHostMap">
        select sensor_id as parentId, id, `name` from host where `type` = 2 and sensor_id = #{id}
    </select>

3. swagger数据展示

技术分享图片

原文:https://www.cnblogs.com/ruhuanxingyun/p/12206488.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!