MyBatis-关联查询的对象是集合的处理

用户和角色之间是多对多的关系,也就是说,一个用户可以有多个角色与之绑定,所以在User对象中,角色的属性就必须是一个集合Set或者List,这里我们就用List集合在做例子:

1.怎么在Mybatis中实现关联的List集合对象roles的查询,关键就是collection标签的使用:

2.同样和association标签查询单个关联对象的属性一样,集合类型的关联属性也可以懒加载:

把前面的三表联合查询,变量两段,先查出user对象,然后在根据user_id查询出对应的角色list集合

配合上全局变量的设置,懒加载即实现了:

最后在总结一下,并补充两个知识点:

不管是association标签还是collection标签,在分步查询的时候,都可以用column属性,给select指定的sql语句传入某列的值做参数,这里补充的第一个知识点就是,前面的传参都是只传入了一个参数,所以,如果需要传入多个参数是怎么办? 可以封装成Map对象,写成这个的格式{key=value,.....}

第二个知识点,其实前面已经提及了一下,就是全局虽然设置为了懒加载,但是如果某个关联对象查询,不想使用懒加载,要立即加载,不用在改回全局变量,只需要association标签或者collection标签设置上fetchType属性就可以,它有两个取值:lazy表示懒加载,eager表示立即加载! 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

k8s流控平台apiserver详解

一、简单理解认识apiserver 1.主要功能 认证 鉴权 准入 mutating validating admission 限流 2.概念 apiserver保护etcd,缓存机制,有缓存直接返回,没缓存再去查看etcd,apiserver是担任和其他平台同信并认证 3.访问控制概览…

ChatGPT不受支持的国家和地区

截至目前,OpenAI的ChatGPT在以下国家和地区不受支持: 中国俄罗斯朝鲜古巴伊朗叙利亚乌克兰(有特定例外) 从这些国家访问或提供访问ChatGPT的服务可能会导致账户被封锁或暂停。此政策旨在确保遵守当地法规和OpenAI的服务条款。 下…

【Android面试八股文】如何通过WindowManager添加Window?

文章目录 1. 获取WindowManager实例2. 创建一个Window的视图(View)3. 设置Window的布局参数(LayoutParams4. 添加权限5. 添加视图到WindowManager6. 完整示例7. 小结1. 获取WindowManager实例 你可以通过Context获取WindowManager实例。 WindowManager windowManager = (W…

python DoIPClient详解

python DoIPClient详解 DoIPClient 是 doipclient 库中的一个核心类,用于实现诊断通过 IP(DoIP)协议与汽车电子控制单元(ECU)进行通信。以下是对 DoIPClient 类的详细解释: 构造函数(init 方法…

精益生产KPI指标分析与管理系统,助力企业挖掘数据黄金焕发第二生命线

智慧工厂精益生产追求以越来越少的投入获取越来越多的产出,通过消除浪费、提高效率来实现生产效益的最大化。精益生产强调量化管理,通过与KPI的结合,可以将生产过程中的关键数据进行量化和分析,推动企业各部门更加关注运营效率&am…

嵌入式Linux的浮点运算能力测试

嵌入式Linux的浮点运算能力测试 今天需要对一款ARM CPU的浮点数运算能力进行测试,采用了台式机上常用的SuperPI相同的原理:计算一定小数位数的圆周率来测试硬件的浮点数计算能力和稳定性。 首先下载计算软件的源代码,可以使用下面命令&#…

Excel 宏录制与VBA编程 —— 12、文本字符串类型相关(转换、拆分、分割、连接、替换、查找、“Like“)

字符串分割,文末示例(文末代码3附有源码) 代码1 - 基础字符串 代码2 - 字符串拆分 代码3 - 字符串分割 Option ExplicitSub WorkbooksClear()Dim DataRange As RangeSet DataRange Range("C2:E12")DataRange.Clear End SubSub Wo…

C++Primer Plus 第十四章代码重用:14.4.4 数组模板示例和非类型参数

系列文章目录 14.4.4 数组模板示例和非类型参数 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录14.4.4 数组模板示例和非类型参数 14.4.4 数组模板示例和非类型参数 模板常用作容器类,这…

NetSuite 隐藏功能之Memorized Transactions记忆交易

本周功课结束,想说说Memorized Transactions这个有时会被忽略的功能,顾名思义,记忆交易就是可以将一个原始的Transaction在创建后进行“记忆”,以保证后续可以在固定日期(周期性日期或者自定义日期)产生“被…

ABC355 Bingo2

分析: 找出其中一行或列或任意对角线被全部标记,即可输出回合数,否则输出-1 如果x%n0,行是x/n,列是n 如果x%n!0,行是x/n1,列是x%n 如果行列或行列n1即为对角线。 标记行列对角线…

CISCN--西南半决赛--pwn

1.vuln 这是主函数,数一下就发现可以溢出最后的0x4008d0 然后会执行到这里,逻辑就是在v0上写shellcode,不过执行写0x10,不够sh,很明显要先read。 以下是exp: from pwn import * context.archamd64 ioprocess(./vuln)…

一大波客户感谢信来袭,感谢认可!

“自美的置业数据中台项目启动以来,贵公司实施团队与服务运营始终以专业、敬业、合作的态度扎根用户、服务用户、与用户共成长。在此,我司表示由衷的感谢!” 这是携手美的置业以来,我们收到的第二封客户感谢信。 △ 以上为美的置…

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论&#xff0c;编译64位报错&#xff0c;查了一圈没找到解决方案&#xff0c;最后换了32位的。 使用qt访问web接口&#xff0c;因为是https&#xff0c;没有openssl库会报错 QNetworkReply* reply qobject_cast<QNetworkReply*>(sender());if (reply){…

UI框架与MVC模式详解(2)——数据管理

【内存包括全量数据】 这是最简单的情况。 有个数据管理的类&#xff0c;初始化时把所有需要的数据加载到内存中&#xff0c;提供不同的Get方法&#xff0c;让同一个界面获取不同的数据或者不同的界面获取相同的数据。 一般来说&#xff0c;对于同一种数据单位&#xff0c;会…

《数据仓库与数据挖掘》 总复习

试卷组成 第一章图 第二章图 第三章图 第四章图 第五章图 第六章图 第九章图 第一章 DW与DM概述 &#xff08;特点、特性&#xff09; DB到DW 主要特征 &#xff08;1&#xff09;数据太多&#xff0c;信息贫乏&#xff08;Data Rich&#xff0c; Information Poor)。 &a…

Ubuntu22.04使用Systemd设置ROS 2开机自启动遇到的问题

在查找网上的各种开机自启动资料配置好开机自启动后&#xff0c;使用ros2 topic list不能显示话题。 1、问题解决&#xff1a;用户问题与domenID问题2、ROS2开机自启动服务教程3、多个ROS2开机自启动服务教程 1、问题解决&#xff1a;用户问题与domenID问题 在root用户下能看到…

2024最新美区TikTok选品全流程指南

打造TikTok爆款&#xff0c;3分靠运营&#xff0c;7分靠选品。 选择适合TikTok推广的商品至关重要&#xff0c;针对TikTok美区如何选品&#xff1f;怎么定价&#xff1f;SKU定多少&#xff1f; 本文总结出独家「美区TikTok选品全流程指南」方法论&#xff0c;说清楚选品最重要…

【项目一】全场景工业互联设备管理系统解决方案(PC上位机+中控+多传感器) 文章汇总

全场景工业互联设备管理系统解决方案(PC上位机中控多传感器) 配套硬件及资料 配套资料&#xff1a;https://pan.baidu.com/s/109e9Cr5nl-BWpct24Q6zOw?pwdroot 密码&#xff1a;root 交流论坛&#xff1a;https://forums.100ask.net/c/specialc/85 QQ交流群&#xff1a;865…

深入理解 XML 和 HTML 之间的区别

在现代网络技术的世界中&#xff0c;XML&#xff08;可扩展标记语言&#xff09;和 HTML&#xff08;超文本标记语言&#xff09; 是两个非常重要的技术。尽管它们都使用标签和属性的格式来描述数据&#xff0c;但它们在形式和用途上有显著的区别。 概述 什么是 XML&#xff…

都江堰操作系统 AI 代码自动生成平台

在当今科技迅猛发展的时代&#xff0c;软件开发的效率和质量成为了关键。都江堰操作系统 AI 代码自动生成平台的出现&#xff0c;为开发者们带来了全新的机遇和挑战。 都江堰操作系统作为一款具有创新特色的操作系统&#xff0c;其本身具备高效、稳定和灵活的特性。而基于此的 …