mybatis一对多关联查询将结果封装到嵌套list
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相关推荐
- mybatis一对多关联查询两种方式
mybatis一对多关联查询两种方式 前提: 方式一: 方式二: 前提: 现在有两张表,学生表跟教师表,一个教师对应多个学生 教师表: CREATE TABLE `teacher` (`id` int ...
- Mybatis一对多关联查询,返回值Map,字段自动映射
功能描述 由于查询字段和表名都要支持动态配置,故查询返回值需要为List<Map<String,Object>>,不定义值对象. 查询结果列需要支持自动映射,不配置类属性和数据 ...
- mybatis一对多关联查询_Mybatis 一对一、一对多的关联查询 ?
<mapper namespace="com.lcb.mapping.userMapper"> <!--association 一对一关联查询 --> &l ...
- mybatis一对多关联查询_一对一,一对多,多对多查询及延迟加载(N+1问题)分析
推荐学习 重识SSM,"超高频面试点+源码解析+实战PDF",一次性干掉全拿走 全网独家的"MySQL高级知识"集合,骨灰级收藏,手慢则无 "吃&qu ...
- 15、mybatis一对多关联查询 collection定义关联集合封装规则及懒加载
文章目录 1.collection定义关联集合封装规则单步查询 1).Dept增加集合属性 2).DeptMapper增加查询接口 3).DeptMapper.xml增加collection配置 4) ...
- Mybatis 一对多关联查询collection用法
使用resultMap, select 标签, resultMap的中的collection表示一对多,column对应select标签中的sql里的字段或者别名,当两个表字段名称有相同的情况下,可以 ...
- Mybatis一对多关联查询详解
要点 在Student类中添加List<Classes> classList 属性 在Classes类中添加List<Student> students属性 在ClassesM ...
- Mybatis多表关联查询(一对多关联查询)
1.Mybatis一级缓存与二级缓存 目的:提高查询效率,降低数据库查询压力,提升系统整体性能. 一级缓存:默认开启,Session级别,同一个会话内生效. 命中缓存的情况:statementid.S ...
- mybatis中的关联查询
mybatis中的关联查询 (尊重劳动成果,转载请注明出处:https://blog.csdn.net/qq_39778516/article/details/84191429 consistence ...
最新文章
- oracle实例由,Oracle数据库和实例
- php全局变量GLOBAL
- Android Fragment add/replace以及backstack
- 翘课老黄历——设计文档
- python中的取余运算符是_python取余运算
- SQL2005 BI系列课程
- 北京协和医学院823计算机原理,2017年北京协和医学院放射医学研究所(天津)823计算机原理考研题库...
- 文献学习(part27)--Regularization Paths for Cox’s Proportional Hazards Model via Coordinate Descent
- 解决Silverlight中DataGrid在显示数据时多一空白列
- dingtalk 推送手机号信息 golang_PureQuant使用功能介绍(二):通过配置模块导入API信息...
- (转载)SpringBoot配置Druid数据源监控服务Yml格式
- Python全栈工程师 (exercises)
- 《面向对象分析与设计》一3.7 例题
- R 语言中添加辅助线(ggplot2)
- 文件管理系统 : 增加文件的空间 增加swap文件和swap空间 详解
- DJI大疆创新招聘-自动化测试工程师
- linux查看各类文件系统信息
- 华北电力大学计算机学院复试,2014年华北电力大学(北京)控制与计算机学院考研复试办法...
- 2022-2028年中国罕见病药物行业投资策略探讨及市场规模预测报告
- 2017中学生计算机竞赛预赛试题答案,2017年初中化学竞赛初赛试题
热门文章
- iOS APP上架各种被拒问题补充
- 追华为仿三星 苹果折叠屏iPhone概念图流出 香不香?
- java计算机毕业设计快递物流管理源程序+mysql+系统+lw文档+远程调试
- html协议中目标端口,ICMP数据包的过滤主要基于()A、目标端口B、源端口C、消息源代码D、协议prot...
- Hugging Face 每周速递: 扩散模型和深度强化学习开课啦!
- 如何写好状态机(二)
- 如何提高代码能力:程序员的成长之路(下)
- leetcode 206 反转链表
- Layui表单元素的赋值
- java hincrby_redis教程(八)之redis Hashes