DishDto中有个List集合保存DishFlavor对象,DishFlavor根据关联查询获得,一个dish对应多个dishflavor。想要联合查询自动将DishFlavor封装成集合需要用collection标签

@Data
public class DishDto extends Dish {private List<DishFlavor> flavors = new ArrayList<>();private String categoryName;private Integer copies;
}

mapper.xml中关键点是主表的resultMap中使用collection标签收集副表数据到集合中。

    <resultMap id="DishDtoResultMapper" type="com.yzx.reggie.dto.DishDto" autoMapping="true"><id property="id" column="d_id"/><result property="name" column="name"/><collection property="flavors" resultMap="DishFlavorResultMapper" javaType="java.util.ArrayList"></collection></resultMap><resultMap id="DishFlavorResultMapper" type="com.yzx.reggie.entity.DishFlavor"><id property="id" column="df_id"/><result property="name" column="df_name"/><result property="dishId" column="d_id"/><result property="value" column="value"/></resultMap>

注意:如果副表中有字段名和主表中一致,需要给副表中的同名字段起别名,并在副表resultMap中配置属性-字段映射,否则会映射主表中的同名字段属性而不是副表(即副表本身的同名字段属性不会复制给集合中的元素)

总结

本文简单讲了一下mybatis怎么使用xml文件将一对多查询结果封装到集合中,除了使用xml也可以使用注解完成。

mybatis一对多关联查询将结果封装到嵌套list相关推荐

  1. mybatis一对多关联查询两种方式

    mybatis一对多关联查询两种方式 前提: 方式一: 方式二: 前提: 现在有两张表,学生表跟教师表,一个教师对应多个学生 教师表: CREATE TABLE `teacher` (`id` int ...

  2. Mybatis一对多关联查询,返回值Map,字段自动映射

    功能描述 由于查询字段和表名都要支持动态配置,故查询返回值需要为List<Map<String,Object>>,不定义值对象. 查询结果列需要支持自动映射,不配置类属性和数据 ...

  3. mybatis一对多关联查询_Mybatis 一对一、一对多的关联查询 ?

    <mapper namespace="com.lcb.mapping.userMapper"> <!--association 一对一关联查询 --> &l ...

  4. mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析

    推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...

  5. 15、mybatis一对多关联查询 collection定义关联集合封装规则及懒加载

    文章目录 1.collection定义关联集合封装规则单步查询 1).Dept增加集合属性 2).DeptMapper增加查询接口 3).DeptMapper.xml增加collection配置 4) ...

  6. Mybatis 一对多关联查询collection用法

    使用resultMap, select 标签, resultMap的中的collection表示一对多,column对应select标签中的sql里的字段或者别名,当两个表字段名称有相同的情况下,可以 ...

  7. Mybatis一对多关联查询详解

    要点 在Student类中添加List<Classes> classList 属性 在Classes类中添加List<Student> students属性 在ClassesM ...

  8. Mybatis多表关联查询(一对多关联查询)

    1.Mybatis一级缓存与二级缓存 目的:提高查询效率,降低数据库查询压力,提升系统整体性能. 一级缓存:默认开启,Session级别,同一个会话内生效. 命中缓存的情况:statementid.S ...

  9. mybatis中的关联查询

    mybatis中的关联查询 (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_39778516/article/details/84191429 consistence ...

最新文章

  1. oracle实例由,Oracle数据库和实例
  2. php全局变量GLOBAL
  3. Android Fragment add/replace以及backstack
  4. 翘课老黄历——设计文档
  5. python中的取余运算符是_python取余运算
  6. SQL2005 BI系列课程
  7. 北京协和医学院823计算机原理,2017年北京协和医学院放射医学研究所(天津)823计算机原理考研题库...
  8. 文献学习(part27)--Regularization Paths for Cox’s Proportional Hazards Model via Coordinate Descent
  9. 解决Silverlight中DataGrid在显示数据时多一空白列
  10. dingtalk 推送手机号信息 golang_PureQuant使用功能介绍(二):通过配置模块导入API信息...
  11. (转载)SpringBoot配置Druid数据源监控服务Yml格式
  12. Python全栈工程师 (exercises)
  13. 《面向对象分析与设计》一3.7 例题
  14. R 语言中添加辅助线(ggplot2)
  15. 文件管理系统 : 增加文件的空间 增加swap文件和swap空间 详解
  16. DJI大疆创新招聘-自动化测试工程师
  17. linux查看各类文件系统信息
  18. 华北电力大学计算机学院复试,2014年华北电力大学(北京)控制与计算机学院考研复试办法...
  19. 2022-2028年中国罕见病药物行业投资策略探讨及市场规模预测报告
  20. 2017中学生计算机竞赛预赛试题答案,2017年初中化学竞赛初赛试题

热门文章

  1. iOS APP上架各种被拒问题补充
  2. 追华为仿三星 苹果折叠屏iPhone概念图流出 香不香?
  3. java计算机毕业设计快递物流管理源程序+mysql+系统+lw文档+远程调试
  4. html协议中目标端口,ICMP数据包的过滤主要基于()A、目标端口B、源端口C、消息源代码D、协议prot...
  5. Hugging Face 每周速递: 扩散模型和深度强化学习开课啦!
  6. 如何写好状态机(二)
  7. 如何提高代码能力:程序员的成长之路(下)
  8. leetcode 206 反转链表
  9. Layui表单元素的赋值
  10. java hincrby_redis教程(八)之redis Hashes