栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis一对多,多对一嵌套查询的返回

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis一对多,多对一嵌套查询的返回

我们有时候查询需要一带多,多带一的信息,举个一对多的例子:我们要查询所有的订单,顺便还能把对应的订单里面的多条详情(比如对应的商品,商品价格等)也带出来。

类似于这样

orderNo,
orderTime,
orderDetailList
                       [
                          {
                              orderDetailId,
                              skuid,
                              skuName,
                              count,
                              price,
                              amount
                          }
                        ..................
                       ],
totalAmount

我们查出来很容易,按照最细粒度查询,但是我们的DO,DTO接收是一个问题,如何能让返回的详情

比如我查询3个订单,返回的详情是5个

一对多的其实我们可以通过设置Mapper以及对应的文件,
这里面涉及到的关键词是collection

这样我们返回的对象信息是一对多嵌套的,而不是查一遍订单再去查一遍详情,然后在去匹配,SQL只执行一次,而且不会涉及到排序查找匹配的问题。

Mybatis结果标签 一对多:collection

还是那个上面那个订单的例子
我们如何把详情连带这订单信息返回个我们的接收对象

首先我们要设计两个对象:订单对象(里面要有详情detailList)和详情对象

@Data
public class Order{
   private String orderNo;
   private Date orderTime;
   private Bigdecimal totalAmount;
   private List detailList;
}


@Data
public class OrderDetail{
   private Long orderDetailId;
   private Long skuId;
   private String skuName;
   private Integer count;
    private Bigdecimal amount;
    private Bigdecimal price;
}

Mapper配置文件


    
    
    
    
        
        
       .............
    

当然了,这个是可以拆开的,这个可以拆开成2个,订单一个订单详情一个,我比较喜欢拆开的
拆开的写法


    
    
    
    



     
        
       .............

Mybatis结果标签 一对多:association

和上面的类似,查订单详情里面需要订单的信息,反过来

下面是一个mybatis的标签学习地址
mybatis的标签学习

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931093.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号