Mybatis嵌套查询(一对多)
一、返回数据Java类
@Data
public class PersonnelDetailsVO{/*** 主键*/@Column(name = "ID", length = 36, precision = 0)private String id;/*** 人员姓名*/@Column(name = "OPERATE_NAME", length = 36, precision = 0)private String operateName;/*** 单位id*/@Column(name = "UNIT_ID", length = 36, precision = 0)private String unitId;/*** 单位名称*/@Column(name = "UNIT_NAME", length = 36, precision = 0)private String unitName;/*** 身份证号*/@Column(name = "IDCARD", length = 40, precision = 0)private String idcard;/*** 人员照片附件id*/@Column(name = "PHOTO_ATT", length = 36, precision = 0)private String photoAtt;/*** 联系电话*/@Column(name = "PHONE", length = 20, precision = 0)private String phone;/*** 人员状态*/private String operStatus;/*** 进场时间*/private Timestamp inTime;/*** 退场时间*/private Timestamp outTime;/*** 人员类型id*/private String personTypeId;/*** 人员类型名称*/private String personTypeName;/*** 项目部/班组ID*/private String teamId;/*** 项目部/班组名称*/private String teamName;/*** 证书信息列表*/private List<OperCertificateVO> certificateList;/*** 履历列表*/private List<OperResumeVO> resumeList;/*** 黑名单列表*/private List<OperBlacklistVO> blacklists;
}
二、Mybatis代码
<resultMap id="personnelDetailsMap" type="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.PersonnelDetailsVO"><id column="ID" property="id"/><result column="OPERATE_NAME" property="operateName"/><result column="UNIT_ID" property="unitId"/><result column="UNIT_NAME" property="unitName"/><result column="IDCARD" property="idcard"/><result column="PHOTO_ATT" property="photoAtt"/><result column="PHONE" property="phone"/><result column="OPER_STATUS" property="operStatus"/><result column="IN_TIME" property="inTime"/><result column="OUT_TIME" property="outTime"/><result column="PERSON_TYPE_ID" property="personTypeId"/><result column="PERSON_TYPE_NAME" property="personTypeName"/><result column="TEAM_ID" property="teamId"/><result column="TEAM_NAME" property="teamName"/><collection property="certificateList" ofType="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.OperCertificateVO" javaType="list" column="id"select="selectCertificateListByOperateId"/><collection property="resumeList" ofType="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.OperResumeVO" javaType="list" column="id"select="selectResumeListByOperateId"/><collection property="blacklists" ofType="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.OperBlacklistVO" javaType="list" column="id"select="selectBlacklistsByOperateId"/></resultMap><select id="queryPersonnelDetails" resultMap="personnelDetailsMap" parameterType="java.util.List">select T1.ID,T1.OPERATE_NAME,T1.UNIT_ID,T1.UNIT_NAME,T1.IDCARD,T1.PHOTO_ATT,T1.PHONE,T2.OPER_STATUS,T2.IN_TIME,T2.OUT_TIME,T2.PERSON_TYPE_ID,T2.PERSON_TYPE_NAME,T2.TEAM_ID,T2.TEAM_NAMEfrom XMXL_WL_OPER_ITEM T1left join XMXL_WL_PRO_OPER T2 on T1.ID = T2.OPERATE_IDwhereT1.ID IN<foreach collection="list" index="index" item="item" open="(" separator="," close=")">#{item}</foreach>order by T1.CREATE_TIME DESC</select><select id="selectCertificateListByOperateId" resultType="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.OperCertificateVO" parameterType="java.lang.String">select T1.ID AS id,T1.OPERATE_ID AS operateId,T1.CERTIFICATE_ATT_ID AS certificateAttId,T1.CERTIFICATE_TYPE AS certificateType,T1.CERTIFICATE_NAME AS certificateName,T1.CERTIFICATE_UNIT AS certificateUnit,T1.ISSUANCE_DATE AS issuanceDate,T1.EFFECTIVE_DATE AS effectiveDate,T1.CREATOR_ID AS creatorId,T1.UPDATOR_ID AS updatorId,T1.CREATE_TIME AS createTime,T1.UPDATE_TIME AS updateTimefrom XMXL_WL_OPER_CERTIFICATE T1where T1.OPERATE_ID = #{id}order by T1.CREATE_TIME DESC</select><select id="selectResumeListByOperateId" resultType="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.OperResumeVO" parameterType="java.lang.String">select T1.ID AS id,T1.OPERATE_ID AS operateId,T1.RESUME_IN_TIME AS resumeInTime,T1.RESUME_OUT_TIME AS resumeOutTime,T1.RESUME_PRO_NAME AS resumeProName,T1.RESUME_SINGLE_PRO_NAME AS resumeSingleProName,T1.RESUME_PERSONNEL_TYPE AS resumePersonnelType,T1.RESUME_PRO_STATUS AS resumeProStatus,T1.CREATOR_ID AS creatorId,T1.UPDATOR_ID AS updatorId,T1.CREATE_TIME AS createTime,T1.UPDATE_TIME AS updateTimefrom XMXL_WL_OPER_RESUME T1where T1.OPERATE_ID = #{id}order by T1.CREATE_TIME DESC</select><select id="selectBlacklistsByOperateId" resultType="com.mdxc.zhgd.overview.personnelmanage.personnelmanageapi.model.OperBlacklistVO" parameterType="java.lang.String">select T1.ID AS id,T1.OPERATE_ID AS operateId,T1.BLACKLIST_PRO_NAME AS blacklistProName,T1.BLACKLIST_SINGLE_PRO_NAME AS blacklistSingleProName,T1.BLACKLIST_BID_NAME AS blacklistBidName,T1.KEEPOUT_DATE AS keepoutDate,T1.KEEPOUT_EFFECTIVE_DATE AS keepoutEffectiveDate,T1.KEEPOUT_REASON AS keepoutReason,T1.CREATOR_ID AS creatorId,T1.UPDATOR_ID AS updatorId,T1.CREATE_TIME AS createTime,T1.UPDATE_TIME AS updateTimefrom XMXL_WL_OPER_BLACKLIST T1where T1.OPERATE_ID = #{id}order by T1.CREATE_TIME DESC</select>
相关文章:
Mybatis嵌套查询(一对多)
一、返回数据Java类 Data public class PersonnelDetailsVO{/*** 主键*/Column(name "ID", length 36, precision 0)private String id;/*** 人员姓名*/Column(name "OPERATE_NAME", length 36, precision 0)private String operateName;/*** 单位i…...
web前端转正工作总结范文5篇
web前端转正工作总结(篇1) 来到__有限公司已经三个月了,目前的工作是前端开发,我是一名应届毕业生,之前没有过工作经验,在刚来到__这个大家庭的时候,我就被这里的工作气氛深深地吸引࿰…...
P1144 最短路计数
最短路计数 题目描述 给出一个 N N N 个顶点 M M M 条边的无向无权图,顶点编号为 1 ∼ N 1\sim N 1∼N。问从顶点 1 1 1 开始,到其他每个点的最短路有几条。 输入格式 第一行包含 2 2 2 个正整数 N , M N,M N,M,为图的顶点数与边数…...
Docker入门之命令
Docker命令学习方式 docker -h docker run --help # 这种形式参考 # 官方帮助 # https://docs.docker.com/reference/ Docker中命令是一等公民, 容器是为命令服务的,甚至启动容器都是为了执行一个命令 run docker run -i -t --name c1 centos:latest bash # 翻译: docker ru…...
Multimodal Learning with Transformer: A Survey
Transformer多模态学习 Abstract1 INTRODUCTION2 BACKGROUND2.1 Multimodal Learning (MML)2.2 Transformers: a Brief History and Milestones2.3 Multimodal Big Data 3 TRANSFORMERS: A GEOMETRICALLY TOPOLOGICAL PERSPECTIVE3.1 Vanilla Transformer3.1.1 Input Tokenizat…...
网工内推 | 实施、售后工程师,厂商认证优先
01 安井食品集团股份有限公司 招聘岗位:网络工程师 职责描述: 1.负责集团组网的网络规划、实施、维护工作; 2.负责公司局域网的网络规划、实施、维护工作; 3.负责公司企业安全系统规划、实施、维护工作; 4、负责公…...
小程序商品如何设置限购
限购是一种常用的小程序商品销售策略,可以帮助商家提高销售额、控制库存和增加用户的购买欲望。那么,小程序产品怎么设置限购呢?下面将为您详细介绍。 1. 设置限购数量 可以设置最低购买数量来鼓励用户批量购买或满足特定的销售需求。例如&…...
通信原理复习公式整理(自用/持续更新)
目录 符号表欧拉公式第一章平均信息量传信率(信息速率)传码率(码元速率) 第二章第三章第四章第五章第六章 数字信号的载波传输2ASK带宽余弦滚降基带信号-2ASK带宽2FSK带宽余弦滚降基带信号-2ASK带宽2PSK带宽匹配滤波器最大输出信噪比最佳线性滤波器传输特性ASK系统信号能量FSK系…...
TypeScript实战篇 - TS实战: 服务层开发 - 完整的聊天服务
目录 huatian-svc/src/main.ts huatian-svc/src/context/ChatContext.ts huatian-svc/src/ChatSession.ts huatian-svc/src/service/ChatIDService.ts huatian-svc/src/dao/DB.ts huatian-svc/src/dao/Dao.ts huatian-svc/src/dao/create_db.ts huatian-svc/src/main.ts…...
【雕爷学编程】MicroPython动手做(32)——物联网之MQTT
MQTT (Message Queuing Telemetry Transport)消息队列遥测传输协议,是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。M…...
操作系统专栏4-网络专题from小林coding
网络专题 文件传输mmapwritesend file大文件传输过程 文件传输 传统的文件传输过程 在这个过程中发生了4次用户态与内核态之间的切换,4次数据拷贝分别是 read系统调用陷入内核,read完成返回write调用陷入内核,write返回 4次数据拷贝分别是 磁盘->内核缓冲区->用户缓冲…...
《C和指针》(6)指针
1、内存和地址 计算机的内存是由数以亿万计的位(bit)组成,每一个位可以容纳值0、1值。由于一个位所能表示的值的范围太有限,所以单独的位用处不大。通常许多为合成一组作为一个单位,这样就可以存储范围较大的值。下图…...
零基础强化学习入门分享
(一)前言:强化学习入门顺序。 以前主要学习硬件PCB单片机等知识,后来接触的项目也大多与电气相关,从一窍不通到稍微找到点门道,中间走过不少弯路,误打误撞中,也留下了一些经验。 我的…...
QT快捷键
--------------------------------------------------- --------------------------------------------------- QT断点调试 Ctrl B 编译程序 F5 调试运行程序 F10 单步调试 F11 进入函数调试 --------------------------------------------------- -----------------------…...
LabVIEW 开发在不确定路况下自动速度辅助系统
LabVIEW 开发在不确定路况下自动速度辅助系统 智能驾驶辅助系统是汽车行业最先进的升级和尖端技术,智能交通系统依靠智能驾驶辅助系统在公共交通部门工作。该智能驾驶辅助系统技术包括自适应巡航控制,防抱死制动系统,安全气囊展开࿰…...
《面试1v1》ElasticSearch 和 Lucene
🍅 作者简介:王哥,CSDN2022博客总榜Top100🏆、博客专家💪 🍅 技术交流:定期更新Java硬核干货,不定期送书活动 🍅 王哥多年工作总结:Java学习路线总结…...
P5727 【深基5.例3】冰雹猜想
【深基5.例3】冰雹猜想 题目描述 给出一个正整数 n n n,然后对这个数字一直进行下面的操作:如果这个数字是奇数,那么将其乘 3 3 3 再加 1 1 1,否则除以 2 2 2。经过若干次循环后,最终都会回到 1 1 1。经过验证很…...
ConcurrentHashMap1.7 源码浅析
分析过HashMap的1.7的版本的结构,但是HashMap是线程不安全的,多线程触发扩容还会发生死循环问题,那么ConcurrentHashMap 就是解决这个问题的,这是一个线程安全的Map,那么对应的内部实现是怎么样的,简单分析…...
跨境电商时代的安全护航
随着跨境电商业务的蓬勃发展,网络安全问题日益突出。为了保障个人信息的安全和商业竞争的公平性,防关联浏览器和多开浏览器的需求日益增长。本文将为您介绍隐擎fox指纹浏览器,探讨其在跨境电商时代的重要作用,以及如何通过该浏览器…...
JavaScript Es6 _1 笔记
JavaScript Es6 _1 笔记 学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。 理解作用域对程序执行的影响能够分析程序执行的作用域范围理解闭包本质,利用闭包…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
