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 Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
