qq_龍aiq飛_0
2020-01-17 13:55
场景
订单表,订单详情表
Controller 查询订单,订单信息里包含购买商品信息
@Data
public class OrderMaster {
@TableId(type = IdType.AUTO)
private Integer orderId;
private String buyerName;
private String buyerPhone;
private String buyerAddress;
private String buyerOpenid;
private BigDecimal orderAmount;
private Integer orderStatus = OrderStatusEnum.NEW.getCode();
private Integer payStatus = PayStatusEnum.WAIT.getCode();
@TableField( fill = FieldFill.INSERT)// 新增执行
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE) // 新增和更新执行
private Date updateTime;
private transient List<OrderDetail> orderDetailList;
}@Data
public class OrderDetail {
@TableId(type = IdType.AUTO)
private Integer detailId;
private Integer orderId;
private Integer productId;
private String productName;
private BigDecimal productPrice;
private Integer productQuantity;
private String productIcon;
@TableField( fill = FieldFill.INSERT)// 新增执行
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE) // 新增和更新执行
private Date updateTime;
}查询的时候MP 不能自动处理么?
百度搜到的都是mybatis的处理方法,不知道MP有没有更优雅的方式?
我再重发一遍,刚才在你下面留言,不知道为啥被截断了。这不是子查询,MP应该是解决不了这个问题,我的办法就是使用OrderMaster的Mapper先查询OrderMaster。然后用OrderDetail的Mapper根据主表的主键查询从表数据,最后把从表数据赋值到OrderMaster对象上。就是两次查询。
还有个办法就是用mybatis原生的resultMap中配置collection的这种方式。
MP主要是简化单表操作的,如果包含子查询的话,可以用原生mybatis的写法。
但是有一些包含子查询的sql使用MP也是可以写出来了,你能具体贴出来你想要的包含子查询的sql语句吗?我看看用MP能不能优雅的写出来。
MyBatis-Plus入门
56849 学习 · 381 问题
相似问题