博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybatis使用collection查询集合属性规则
阅读量:4328 次
发布时间:2019-06-06

本文共 1394 字,大约阅读时间需要 4 分钟。

接上篇

相关的类还是上篇中的类。

查询部门的时候将部门对应的所有员工信息也查询出来

DepartmentMapper.xml


collection分步查询

先通过部门表的id查出部门信息,再通过员工表的部门id查出所有的员工信息,也就是Department中的private List<Employee> emps;的属性信息

DepartmentMapper.xml:首先通过id="getDeptByIdStep"的sql查出部门信息

再通过collection中的select="com.mybatis.dao.EmployeeMapperPlus.getEmpsByDeptId"调用EmployeeMapper.xml中的查询语句,column="id"为传递的查询条件的值,也就是将这个值赋给EmployeeMapper.xml中的#{deptId}

EmployeeMapper.xml

最后呢,也就是将查询到的员工信息,即多条Employee记录封装给Departmentemps属性。

注意:collection的分步查询也是可以延迟加载的,具体配置与上篇中的association一致


另外,collection元素中还有个fetchType类型,也是用来控制延迟加载的,不过比全局配置的优先级更高。

fetchType 可选的。有效值为 lazyeager。 指定属性后,将在映射中忽略全局配置参数 lazyLoadingEnabled,使用属性的值。

补充:collection中的column属性是数据库中的列名,或着是列的别名,用来传递给select属性所指定语句中的参数,那如果需要传递多个参数该怎么写?

官方文档:

1005988-20190711230802875-563959887.png

转载于:https://www.cnblogs.com/heliusKing/p/11173362.html

你可能感兴趣的文章
LVM扩容之xfs文件系统
查看>>
Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
查看>>
代码片段收集
查看>>
vue-cli3创建项目时报错
查看>>
输入1-53周,输出1-53周的开始时间和结束时间
查看>>
实验二
查看>>
shell——按指定列排序
查看>>
crash 收集
查看>>
507 LOJ 「LibreOJ NOI Round #1」接竹竿
查看>>
UI基础--烟花动画
查看>>
2018. 2.4 Java中集合嵌套集合的练习
查看>>
精通ASP.NET Web程序测试
查看>>
vue 根据不同属性 设置背景
查看>>
51Nod1601 完全图的最小生成树计数 Trie Prufer编码
查看>>
Codeforces 1110D. Jongmah 动态规划
查看>>
android驱动在win10系统上安装的心酸历程
查看>>
优雅的程序员
查看>>
oracle之三 自动任务调度
查看>>
Android dex分包方案
查看>>
ThreadLocal为什么要用WeakReference
查看>>