Springboot 在xml中实现一对多功能

需要实现的功能:查询一个标题下有多少副标题

实体类一(标题)

package com.xmtdxt.pc.api.sys.responseEntity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 编辑说明-列表
 * @author LunarYouI
 * @create 2022-03-31 16:39
 */

@Data
public class ResponseHeadlineTwoListEntity implements Serializable {
    
    
    @ApiModelProperty(value = "标题主键id")
    private String id;
    @ApiModelProperty(value = "标题")
    private String title;
    @ApiModelProperty(value = "副标题")
    private List<ResponseAssistantEntity> assistant;
}

实体类二(副标题)

package com.xmtdxt.pc.api.sys.responseEntity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @author LunarYouI
 * @create 2022-04-11 15:34
 */
@Data
public class ResponseAssistantEntity implements Serializable {
    
    
    @ApiModelProperty(value = "副标题主键id")
    private String assistantId;
    @ApiModelProperty(value = "副标题")
    private String assistantTitle;
    @ApiModelProperty(value = "价格")
    private String assistantDescription;
}

业务代码

/**
     * 获取列表
     * @param weddingHallId
     * @return
     */
    @Override
    public Result<List<ResponseHeadlineTwoListEntity>> HeadlineTwoList(String weddingHallId) {
    
    
        List<ResponseHeadlineTwoListEntity> responseHeadlineTwoListEntities = baseMapper.HeadlineTwoList(weddingHallId);
        return Result.ok(responseHeadlineTwoListEntities);
    }

DAO

package com.xmtdxt.pc.api.sys.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xmtdxt.pc.api.sys.entity.SysWeddingHallDescriptionTitleEntity;
import com.xmtdxt.pc.api.sys.responseEntity.ResponseHeadlineTwoListEntity;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 婚礼堂说明-标题
 * @author 
 * @email 
 * @date 2021-10-14 11:28:16
 */
@Mapper
public interface SysWeddingHallDescriptionTitleDao extends BaseMapper<SysWeddingHallDescriptionTitleEntity> {
    
    
    /**
     * 获取编辑说明-列表
     * @param weddingHallId
     * @return
     */
    List<ResponseHeadlineTwoListEntity> HeadlineTwoList(String weddingHallId);
}

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.xmtdxt.pc.api.sys.dao.SysWeddingHallDescriptionTitleDao">

    <resultMap type="com.xmtdxt.pc.api.sys.responseEntity.ResponseHeadlineTwoListEntity" id="title">
        <id column="id" property="id" />
        <result column="title" property="title" />
        <!-- 返回对象<association property="" javaType=""></association> -->
        <!-- 返回集合<collection property="" ofType="" /> -->
        <collection property="assistant" ofType="com.xmtdxt.pc.api.sys.responseEntity.ResponseAssistantEntity" column="wedding_hall_id">
            <!-- 这里的column对应的是下面查询的别名,而不是表字段名 -->
            <id column="assistantId" property="assistantId" />
            <!-- property对应JavaBean中的属性名 -->
            <result column="assistantTitle" property="assistantTitle" />
            <result column="assistantDescription" property="assistantDescription" />
        </collection>
    </resultMap>

    <select id="HeadlineTwoList" parameterType="com.xmtdxt.pc.api.sys.responseEntity.ResponseHeadlineTwoListEntity" resultMap="title">
		SELECT
            t1.id,
            t1.title,
            t2.id as assistantId,
            t2.title as assistantTitle,
            t2.description as assistantDescription
        FROM
            sys_wedding_hall_description_title AS t1
            LEFT JOIN(
                SELECT
                    id,
                    title,
                    description,
                    wedding_hall_description_title_id
                FROM
                    sys_wedding_hall_description_content
            ) as t2 on t2.wedding_hall_description_title_id=t1.id
        WHERE
            t1.is_del=0 and t1.wedding_hall_id = #{
    
    weddingHallId}
	</select>
</mapper>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_46100517/article/details/124101786