Mybatis-Plus一对多及分页
需求中一个商品对应多个类型的多个图片,由于商品信息和商品相关图片是分表根据商品id关联存的,所以这就涉及到了关联查询。对这个不是很了解,所以网上搜了一圈,说的那叫一个花里胡哨啊,好几种方式以及贴的代码,看的人脑阔疼,尝试出了一种比较简单的方式,分享一下。
首先分享一下我的代码,两个实体类,即代表两张表。一个商品类,一个商品图片类。一个商品对应好多张图片,一对多的关系。采用Mapper.xml实现,看网上有完全基于注解实现的,看了一下比较懵,xml比较熟悉。
商品类(重点看最后两个list类型的字段):
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Product implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 产品类别,1:原材料,2:设备
*/
@TableField("type")
private Integer type;
/**
* 产品名称
*/
@TableField("name")
private String name;
/**
* 品牌
*/
@TableField("brand")
private String brand;
/**
* 产地
*/
@TableField("place")
private String place;
/**
* 价格
*/
@TableField("price")
private Integer price;
/**
* 库存量
*/
@TableField("stock")
private Integer stock;
/**
* 运费
*/
@TableField("carriage")
private Integer carriage;
/**
* 销量
*/
@TableField("sales_volume")
private Integer salesVolume;
/**
* 采购次数
*/
@TableField("purchase_number")
private Integer purchaseNumber;
/**
* 更新时间
*/
@TableField("update_time")
private Date updateTime;
/**
* 创建时间
*/
@TableField("create_time")
private Date createTime;
/**
* 商品展示图列表
*/
private List<Images> showImages;
/**
* 商品详情图列表
*/
private List<Images> infoImages;
}
商品图片类:
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Images implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 图片id
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 图片地址
*/
@TableField("url")
private String url;
/**
* 图片优先级,从小到大优先级依次减小
*/
@TableField("url")
private Integer order;
/**