mybatis三表联合查询

首先三个表的实体如下:全部是从下至上三个表都是一对多的关系

package com.dxn.dxnproject.bean;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @time 2019-12-10-10:35
 * 参数数据实体类
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ParaData {
     

    @JsonProperty(value = "paraDataId")
    private Integer paraDataId;

    @JsonProperty(value = "paraDataName")
    private String paraDataName;

    @JsonProperty(value = "paraDataCode")
    private String paraDataCode;

    @JsonProperty(value = "paraDataDescription")
    private String paraDataDescription;

    @JsonProperty(value = "paraDataPrice")
    private BigDecimal paraDataPrice;

    @JsonProperty(value = "paraDataRemark")
    private String paraDataRemark;


    @JsonProperty(value = "paraTypeId")
    private Integer paraTypeId;

    @JsonProperty(value = "paraTypeName")
    private String paraTypeName;


    @JsonProperty(value = "paraDataCreateTime")
    private Date paraDataCreateTime;


    @JsonProperty(value = "paraDataUpdateTime")
    private Date paraDataUpdateTime;

}
package com.dxn.dxnproject.vo;

import com.dxn.dxnproject.bean.ParaData;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * @time 2019-12-10-15:01
 *
 * 参数类型和参数数据映射视图, 供三表查询使用
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ParaTypeDataVo {
     

    @JsonProperty(value = "paraTypeId")
    private Integer paraTypeId;

    @JsonProperty(value = "spuId")
    private Integer spuId;

    @JsonProperty(value = "spuName")
    private String spuName;

    @JsonProperty(value = "paraTypeName")
    private String paraTypeName;

    @JsonProperty(value = "paraTypeNameDescription")
    private String paraTypeNameDescription;

    @JsonProperty(value = "paraTypeCreateTime")
    private Date paraTypeCreateTime;

    @JsonProperty(value = "paraTypeUpdateTime")
    private Date paraTypeUpdateTime;

    @JsonProperty(value = "paraDataList")
    private List<ParaData> paraDataList;




}
package com.dxn.dxnproject.vo;

import com.dxn.dxnproject.bean.ParaType;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @time 2019-12-10-15:04
 * 产品型号和参数类型试图,供三表查询使用
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SpuParaTypeVo {
     

    // 产品型号主键
    @JsonProperty(value = "spuId")
    private Integer spuId;

    // 产品型号名称
    @JsonProperty(value = "spuName")
    private String spuName;

    // 产品型号唯一表示码(以后用于生成二维码)
    @JsonProperty(value = "spuUniqueCode")
    private String spuUniqueCode;

    // 产品型号介绍
    @JsonProperty(value = "spuDescription")
    private String spuDescription;

    // 产品型号基础价格
    @JsonProperty(value = "spuPrice")
    private BigDecimal spuPrice;

    // 产品供货期
    @JsonProperty(value = "spuSupplyPeriod")
    private String spuSupplyPeriod;

    // 产品质保期
    @JsonProperty(value = "spuQualityPeriod")
    private String spuQualityPeriod;

    // 产品图片(一张url)
    @JsonProperty(value = "spuImage")
    private String spuImage;

    // 产品pdf文档,多个pdf
    @JsonProperty(value = "spuDocument")
    private String spuDocument;

    // 产品所属标签组合,以#分隔
    @JsonProperty(value = "spuTagGroup")
    private String spuTagGroup;

    // 产品上线状态(0:下线; 1:即将下线; 2:在售)
    @JsonProperty(value = "spuOnlineStatus")
    private Integer spuOnlineStatus;

    // 产品型号的互斥关系,字符串
    @JsonProperty(value = "spuMutexRelationship")
    private String spuMutexRelationship;

    // 产品型号预留字段1
    @JsonProperty(value = "spuReservedField1")
    private String spuReservedField1;

    // 产品型号预留字段2
    @JsonProperty(value = "spuReservedField2")
    private String spuReservedField2;

    // 产品型号创建时间
    @JsonProperty(value = "spuCreateTime")
    private Date spuCreateTime;

    // 产品型号更新时间
    @JsonProperty(value = "spuUpdateTime")
    private Date spuUpdateTime;

    @JsonProperty(value = "paraTypeList")
    private List<ParaType> paraTypeList;


}

mapper.xml

<!-- 三表联合查询 -->

>
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
    >
        >
        >
        >
        >
        >
        >
        >
        >
            >
            >
            >
            >
            >
            >
            >
            >
            >
            >
        >
    >
>