MP的子列表查詢?cè)趺磳?shí)現(xiàn)的?沒看見老師給例子
場(chǎng)景
訂單表,訂單詳情表
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)//?新增執(zhí)行 ????private?Date?createTime; ????@TableField(fill?=?FieldFill.INSERT_UPDATE)?//?新增和更新執(zhí)行 ????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)//?新增執(zhí)行 ????private?Date?createTime; ????@TableField(fill?=?FieldFill.INSERT_UPDATE)?//?新增和更新執(zhí)行 ????private?Date?updateTime; }
查詢的時(shí)候MP 不能自動(dòng)處理么?
百度搜到的都是mybatis的處理方法,不知道MP有沒有更優(yōu)雅的方式?
2020-01-19
? ? ? 我再重發(fā)一遍,剛才在你下面留言,不知道為啥被截?cái)嗔?。這不是子查詢,MP應(yīng)該是解決不了這個(gè)問題,我的辦法就是使用OrderMaster的Mapper先查詢OrderMaster。然后用OrderDetail的Mapper根據(jù)主表的主鍵查詢從表數(shù)據(jù),最后把從表數(shù)據(jù)賦值到OrderMaster對(duì)象上。就是兩次查詢。
? ? ? ?還有個(gè)辦法就是用mybatis原生的resultMap中配置collection的這種方式。
2020-01-19
? ? ?MP主要是簡(jiǎn)化單表操作的,如果包含子查詢的話,可以用原生mybatis的寫法。
? ? ?但是有一些包含子查詢的sql使用MP也是可以寫出來了,你能具體貼出來你想要的包含子查詢的sql語句嗎?我看看用MP能不能優(yōu)雅的寫出來。