Mybatis<collection>实现一对多

news2024/12/23 15:30:42

时隔多年又用到这样的查询方式了,提前声明一下分页最后返回的数据会小于每页条数,废话不多说直接上代码!

@Data
public class PbcUserTargetTaskPageVO {

    @ApiModelProperty("个人绩效指标id")
    private Long id;

    @ApiModelProperty("月份")
    private String month;

    @ApiModelProperty("工号")
    private String employeeNo;

    @ApiModelProperty("姓名")
    private String employeeName;

    @ApiModelProperty("月份")
    private String oraName;

    @ApiModelProperty(value = "目标")
    private BigDecimal goal;

    @ApiModelProperty(value = "绩效指标")
    private String targetName;

    @ApiModelProperty(value = "个人绩效指标关键任务")
    private List<PbcKeyTaskVO> taskList;
}
@Data
public class PbcKeyTaskVO {

    @ApiModelProperty(value = "主键id")
    private Long id;

    @ApiModelProperty(value = "任务编码")
    private String code;

    @ApiModelProperty(value = "任务名称")
    private String name;

    @ApiModelProperty(value = "任务类型")
    private String type;

    @ApiModelProperty(value = "任务描述")
    private String detail;

    @ApiModelProperty(value = "创建人工号")
    private String createBy;

    @ApiModelProperty(value = "创建人名字")
    private String createName;

    @ApiModelProperty(value = "创建时间")
    private String createTime;

    @ApiModelProperty(value = "是否关联绩效指标任务 Y=已关联,N=未关联")
    private String isRelated;
}
public interface PbcUserTargetTaskMapper extends BaseMapper<PbcUserTargetTask> {

    Page<PbcUserTargetTaskPageVO> pageList(Page page, PbcUserTargetTaskPageRequest dto);
}
    <!-- 通用查询映射结果 -->
    <resultMap id="PageResultMap" type="com.shinho.plrs.manager.pojo.vo.PbcUserTargetTaskPageVO">
        <id column="user_target_id" property="id" />
        <result column="month" property="month" />
        <result column="employee_no" property="employeeNo" />
        <result column="employee_name" property="employeeName" />
        <result column="oraName" property="oraName" />
        <result column="goal" property="goal" />
        <result column="targetName" property="targetName" />
        <!-- 配置一对多关联 -->
        <collection property="taskList" ofType="com.shinho.plrs.manager.pojo.vo.PbcKeyTaskVO">
            <id property="id" column="task_id"/>
            <result property="code" column="task_code"/>
            <result property="name" column="task_name"/>
            <result property="type" column="task_type"/>
            <result property="detail" column="task_detail"/>
            <result property="createTime" column="task_create_time"/>
       </collection>
    </resultMap>

<select id="pageList" resultMap="PageResultMap">
        SELECT
            a.id AS user_target_id,
            a.`user_number` AS employee_no,
            a.`name` AS employee_name,
            a.`position` AS position,
            d.ora_name AS oraName,
            a.`target_code`,
            e.`name` AS targetName,
            a.`goal`,
            a.`version_date` AS `month`,
            b.task_id,
            c.`code` AS task_code,
            c.`name` AS task_name,
            c.type AS task_type,
            c.detail AS task_detail,
            c.create_time AS task_create_time
        FROM
            user_target_result a
            LEFT JOIN pbc_user_target_task b ON a.version_date=b.`month` AND a.user_number=b.employee_no AND a.target_code=b.target_code
            LEFT JOIN pbc_key_task c ON b.task_id=c.id
            LEFT JOIN assess_base_snapshot d ON a.version_date=d.`month` AND a.user_number=d.employee_no AND a.position=d.assess_position_name
            LEFT JOIN plrs_target e ON a.target_code=e.`code`
        WHERE
            a.version_date = '2024-07'
        AND a.user_number = '21120060'
        AND ( d.ora_id = '01003403' OR locate('01003403',d.ora_parent_group ) > 0)
        ORDER BY a.user_number DESC
    </select>

这里就知道了,一页10条,但是返回后有一条数据1v2,所以变成了9,前端页面会看起来很怪就会有问题,这是只有一个,如果一对10那一页就只返回了一条数据。这种查询不适合用于分页查询!

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

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

相关文章

Modbus通讯接口选择分析

Modbus通讯接口选择分析 Modbus通讯接口的选择涉及到多个方面的考量&#xff0c;包括但不限于通讯距离、数据传输速率、成本、设备兼容性以及应用场景等。下面将从这些角度出发&#xff0c;对Modbus通讯接口的选择进行详细的分析。 Ip67防水面板法兰插座 通讯距离 Modbus通讯…

VLAN 划分案例详解

vlan 的应用在网络项目中是非常广泛的&#xff0c;基本上大部分的项目都需要划分 vlan&#xff0c;这里从基础的 vlan 的知识开始&#xff0c;了解 vlan 的划分原理。 为什么需要 vlan&#xff1a; 1、什么是 VLAN&#xff1f; VLAN&#xff08;Virtual LAN&#xff09;&…

【面试题】Redo log和Undo log

Redo log 介绍Redo log之前我们需要了解一下&#xff0c;mysql数据操作的流程&#xff1a; 上述就是数据操作的流程图&#xff0c;可以发现sql语句并不是直接操作的磁盘而是通过操作内存&#xff0c;然后进行内存到磁盘的一个同步。这里我们必须要了解一些区域&#xff1a; 缓…

推荐一款使用Java EE技术栈的企业应用定制化开发平台(带源码)

前言 在数字化转型的浪潮中&#xff0c;企业面临着多样化的信息系统建设需求。现有的软件系统往往存在定制化程度低、开发周期长、成-本高等问题。此外&#xff0c;随着企业规模的扩大和业务的复杂化&#xff0c;传统的软件系统难以满足灵活多变的业务需求。 为了解决这些痛点…

【前端7*】表格-表单2(弹窗在子组件)父子组件调用 vue element-ui

vue element-ui 中表单弹框的使用 写在最前面一、子组件 HelloWorld.vue1. 弹窗部分、将 visible 传值给父组件2.表单的 ruleForm 校验方法3.表单确认方法4. 提交确认方法&#xff1a;handleSummit5.表单渲染 二、父组件 HomeView.vue1.新增按钮、查看和编辑2.引用子组件弹窗3.…

【Linux网络】select{理解认识select/select与多线程多进程/认识select函数/使用select开发并发echo服务器}

文章目录 0.理解/认识回顾回调函数select/pollread与直接使用 read 的效率差异 1.认识selectselect/多线程&#xff08;Multi-threading&#xff09;/多进程&#xff08;Multi-processing&#xff09;select函数socket就绪条件select的特点总结 2.select下echo服务器封装套接字…

花开半夏,我决意仿一款答题小程序

不是清凉罢挥扇&#xff0c;自缘手倦歇些时。 ——杨万里&#xff08;宋&#xff09; 走过春的绚烂&#xff0c;路过初夏的清凉&#xff0c;我们迎来了炎炎夏日。蛙声阵阵&#xff0c;蝉鸣声声&#xff0c;稻花如白练&#xff0c;荷花别样红。 花开半夏&#xff0c;我决意仿一款…

C# 各版本语法新功能汇总

C# 8.0 以后 官网 C# 7.3 》》in C# 7.2 》》 命名参数、具名参数 》》》 条件 ref 表达式 C# 7.1 》》 default 运算符 default 在C#7.1中得到了改进&#xff0c;不再需要default&#xff08;T&#xff09;了 //变量赋值C#7.0 var s "字符串"; s default(s…

【常见开源库的二次开发】基于openssl的加密与解密——MD5算法源码解析(六)

一、MD5算法分析 &#xff1a; 1.1 关于MD5 “消息摘要”是指MD5&#xff08;Message Digest Algorithm 5&#xff09;算法。MD5是一种广泛使用的密码散列函数&#xff0c;它可以生成一个128位&#xff08;16字节&#xff09;的散列值。 RFC 1321: MD5由Ronald Rivest在1992…

某大型企业产品研发管理体系构建指南解决方案

获取完整PPT见下图 更多有关华为研发管理/IPD、MBSE、PLM、ERP、MES、数据治理、数字样机等方面免费解决方案、资料获取&#xff0c;请见下图

MySQL学习记录 —— 이십사 MySQL连接层和服务层

文章目录 1、整体架构2、连接层1、网络端口和连接管理线程2、客户端连接线程管理3、连接量管理 3、服务层1、服务管理和公共组件2、NoSQL接口与SQL接口以及Parser语法分析器3、优化器和缓存 4、SQL语句执行流程 1、整体架构 MySQL8.0服务器是由连接池、服务管理工具和公共组件…

BIOMOD2 物种分布模拟教程

原文链接&#xff1a;BIOMOD2 物种分布模拟教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247609373&idx5&sn492e7597314a5f9e358c35e4780b275f&chksmfa826dfacdf5e4ecf8ac06bdeba5469b31650bdbefbc8fb88b79c0f332714c453a4cc058d29f&token155…

Linux系统部署MySQL数据库

1.Linux插入光盘&#xff0c;使用df-h获取光盘信息&#xff0c;默认/dev/sr0文件为光盘文件 使用命令 mount -o ro /dev/sr0 /media进行手动挂载 mount -o ro /dev/sr0 /media 2.进入cd /etc/yum.repos.d目录 编辑配置yum库&#xff0c;编辑vim yum.repos [BaseOS] nameba…

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件&#xff0c;以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host&#xff1a;指定数据库服务器的主…

Python Linux环境(Centos8)安装minicoda3+jupyterlab

文章目录 安装miniconda安装python环境启动 最近服务器检查&#xff0c;我下面的服务器有漏洞&#xff0c;不得已重装了&#xff0c;正好记录下怎么从零到python写代码。 安装miniconda miniconda是anconda的精简版&#xff0c;就是管理python环境的得力助手。 # 创建一个名…

企业管理必备:学会寻找客户绝佳方法。

无论是日常沟通、工作交流&#xff0c;还是社交娱乐&#xff0c;微信都扮演着重要的角色。而在微信的使用过程中&#xff0c;添加好友是一项基本而重要的操作&#xff0c;但是您真的会添加微信好友吗&#xff1f; 试试这个神器——微信管理系统&#xff0c;下面分享它快速加客…

TDC 5.0:多集群统一纳管,构建一体化大数据云平台

近期&#xff0c;星环科技数据云平台Transwarp Data Cloud&#xff08;简称TDC&#xff09;5.0版本正式发布&#xff0c;TDC5.0架构屏蔽底层多个TDH集群的差异&#xff0c;采用统一操作模式&#xff0c;新增一个多集群抽象与管理层&#xff0c;能够实现多集群网络互通、跨集群资…

数据库管理的艺术(MySQL):DDL、DML、DQL、DCL及TPL的实战应用(上:数据定义与控制)

文章目录 DDL数据定义语言1、创建数据库2、创建表3、修改表结构4、删除5、数据类型 列的约束主键约束&#xff08;primary key&#xff09;唯一约束&#xff08;unique key&#xff09;非空约束检查约束&#xff08;check&#xff09;外键约束&#xff08;foreign key&#xff…

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH) 1、配置分机 点击分机 -> 找到你需要设置的分机 ->呼叫路由设置为external&#xff0c;这里需要设置的分机是呼叫的并不是坐席的分机呼叫路由 2、配置拨号方案 点击拨号方案 -> 输入目的地绑定 …

C#实战 | 求解《丘建算经》百鸡问题

谈起古代数学&#xff0c;总会想起古希腊欧几里得的名著《几何原本》。而实际上&#xff0c;中国的《周髀算经》《九章算术》《缉古算经》等同样经典&#xff0c;尤其是《九章算术》&#xff0c;更以其算法实用性闻名世界。 中国古代数学的一些发展成果可谓惊艳&#xff0c;足…