mybatis级联查询 一对多(获取班级圈的同时获取评论列表和点赞列表)

查询效果

{
    "success": true,
    "status": "200",
    "msg": "获取班级圈列表成功",
    "data": {
        "pageSize": 4,
        "firstIndex": 0,
        "lastIndex": 1,
        "items": [
            {
                "id": "2",
                "openId": "123456789",
                "classNumber": 1201801,
                "orgId": "11111111",
                "content": "今天开学了",
                "picture": "2.jpg",
                "userType": "0",
                "userId": "39914d265901458aa06aba9d5b0c61ba",
                "sort": 0,
                "del": "0",
                "createdatetime": "2019-02-26 09:49:49",
                "modifydatetime": "2019-02-26 09:49:52",
                "userName": "张瑛3",
                "commentList": [],
                "praiseList": []
            },
            {
                "id": "1",
                "openId": "123456789",
                "classNumber": 1201801,
                "orgId": "11111111",
                "content": "今天天气真好",
                "picture": "1.jpg",
                "userType": "0",
                "userId": "39914d265901458aa06aba9d5b0c61ba",
                "sort": 0,
                "del": "0",
                "createdatetime": "2019-02-26 09:49:13",
                "modifydatetime": "2019-02-26 09:49:16",
                "userName": "张瑛3",
                "commentList": [
                    {
                        "id": "1",
                        "classCircleId": "1",
                        "openId": "1",
                        "userId": "39914d265901458aa06aba9d5b0c61ba",
                        "content": "看上去真不错",
                        "sort": 0,
                        "del": 0,
                        "createdatetime": "2019-02-26 15:33:47",
                        "modifydatetime": "2019-02-26 15:33:48",
                        "userName": "张瑛3"
                    },
                    {
                        "id": "2",
                        "classCircleId": "1",
                        "openId": "1",
                        "userId": "39914d265901458aa06aba9d5b0c61ba",
                        "content": "还行吧,也就那么回事",
                        "sort": 0,
                        "del": 0,
                        "createdatetime": "2019-02-27 10:24:29",
                        "modifydatetime": "2019-02-27 10:24:32",
                        "userName": "张瑛3"
                    }
                ],
                "praiseList": [
                    {
                        "id": "1",
                        "classCircleId": "1",
                        "userIds": "1,2,3,",
                        "counts": 3
                    }
                ]
            }
        ],
        "totalItems": 2,
        "totalPages": 1,
        "currentPage": 1,
        "pageItemsCount": 2,
        "lastPage": true,
        "firstPage": true
    }
}

mapper.xml编写

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.welsee.mapper.ClassCircleMapper">

    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.welsee.entity.ClassCircle">
        <id column="id" property="id"/>
        <result column="open_id" property="openId"/>
        <result column="class_number" property="classNumber"/>
        <result column="org_id" property="orgId"/>
        <result column="content" property="content"/>
        <result column="picture" property="picture"/>
        <result column="user_type" property="userType"/>
        <result column="user_id" property="userId"/>
        <result column="sort" property="sort"/>
        <result column="del" property="del"/>
        <result column="createdatetime" property="createdatetime"/>
        <result column="modifydatetime" property="modifydatetime"/>
    </resultMap>
    <resultMap id="extClassCircleMap" type="com.welsee.extentity.ExtClassCircle" extends="BaseResultMap">
        <result column="user_name" property="userName"/>
        <collection property="commentList" column="comment_list" ofType="com.welsee.entity.ClassCircleComment"
                    select="findClassCircleCommentList"/>
        <collection property="praiseList" column="praise_list" ofType="com.welsee.entity.ClassCirclePraise"
                    select="findClassCirclePraise"/>
    </resultMap>

    <select id="findClassCircleCommentList" resultType="com.welsee.extentity.ExtClassCircleComment">
        SELECT ccc.* ,p.realname user_name
        FROM class_circle_comment ccc
        LEFT JOIN person p ON ccc.user_id = p.id AND p.del = 0
        WHERE ccc.class_circle_id = #{arg0}
    </select>
    
    <select id="findClassCirclePraise" resultType="com.welsee.entity.ClassCirclePraise">
        SELECT * FROM class_circle_praise WHERE class_circle_id = #{arg0}
    </select>
    
    <select id="getClassCircleListInfo" resultMap="extClassCircleMap">
        SELECT c.*,p.realname user_name,c.id comment_list,c.id praise_list
        FROM class_circle c
        LEFT JOIN  person p ON c.user_id = p.id AND p.del = 0
        WHERE c.class_number = #{classNumber} AND c.org_id = #{orgId} AND c.del = 0 ORDER BY c.sort DESC,c.createdatetime DESC
    </select>
</mapper>

猜你喜欢

转载自blog.csdn.net/weixin_39973810/article/details/88352044