Mybatis查询对象包含List之<resultMap>还有子标签<collection>的应用

话不多少,且看代码。


三级联动
@RestController
@RequestMapping("/integration/regions")
@Api(tags = "地区集成接口")
public class ItegrationRegionController {

    @Resource
    private RegionQuery regionQuery;

    @GetMapping("/{id}")
    @ApiOperation("获取地区列表-通过父ID")
    public RegionTreeVO regionTree(@PathVariable String id) {
        return regionQuery.getRegionTree(id);
    }

}
@Repository
@Transactional(readOnly = true)
public class RegionQuery {

    @Resource
    private RegionQueryDAO regionQueryDAO;

    public RegionTreeVO getRegionTree(String pid) {
        return regionQueryDAO.findRegionTreeById(pid);
    }

}
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(value = "地区树")
public class RegionTreeVO {

    private String id;

    private String name;

    private Boolean isLeaf;

    private List<RegionTreeVO> children;

}

public interface RegionQueryDAO {

    RegionTreeVO findRegionTreeById(@Param("regionId") String regionId);

}
    <resultMap id="RegionTreeResultMap" type="com.comall.dc.region.controller.vo.RegionTreeVO">

        <id column="id" property="id"/>
        <result column="region_name" property="name"/>
        <result column="is_leaf" property="isLeaf"/>

        <collection property="children" ofType="com.comall.dc.region.controller.vo.RegionTreeVO" column="id"
                    select="findRegionTreeChildrenByPid"/>
    </resultMap>

    <select id="findRegionTreeById" resultMap="RegionTreeResultMap">
        SELECT
        a.id,
        a.region_name,
        0 AS is_leaf
        FROM dc_region a
        WHERE a.id = #{regionId}
    </select>

    <select id="findRegionTreeChildrenByPid" resultType="com.comall.dc.region.controller.vo.RegionTreeVO">
        SELECT
        a.id,
        a.region_name AS name,
        0 AS isLeaf
        FROM dc_region a
        WHERE a.pid = #{id}
    </select>

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.jianshu.com/p/daf0f5851baa

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容