MybatisPlus使用Left Join...on...一对多多表联查和Ipage分页返回数据问题

2023-11-18

问题:

一对多关系表使用MybatisPlus的Ipage进行分页查询,会先执行联表查询sql语句,然后进行分页。

 像图中联表查询一对多关系,会有多条重复数据,使用Ipage分页会将这10条数据返回到xml中resultMap绑定的type。造成一页展示的数据少于10条。

针对这种我们采用子查询的方式解决:

 一对多关系,

property:主表中关联表的属性名,

column: 主表传递给子查询的字段

select:子查询的方法

javaType:返回的类型

mapper接口

// 分页主表查询
IPage<List<UsedCar>> queryUsedCarSearchListCopy(@Param("page") IPage<UsedCar> pageUtil,@Param("params") Map<String, Object> params);


// 子查询方法名
List<UsedCarImage> queryImageList(@Param("carId") Long carId);
    // service层
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        QueryWrapper<UsedCar> queryWrapper = new QueryWrapper<>();
// Ipage分页,
        IPage<UsedCar> pageUtil = new Page<UsedCar>(Long.parseLong((String) params.get("page")),Long.parseLong((String) params.get("limit")));
// Ipage作为参数传递
        IPage<List<UsedCar>> page =usedCarMapper.queryUsedCarSearchListCopy(pageUtil,params);
        PageUtils pageUtils = new PageUtils(page);
        return pageUtils;
    }

主表查询:

 子查询sql,通过select进行了绑定

#{carId}是主查询传递过来的字段

 ,mybatisPlus分页一对多关联表查询,可以正常显示了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MybatisPlus使用Left Join...on...一对多多表联查和Ipage分页返回数据问题 的相关文章

  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • 如何在 Ansible 中运行 MySQL 查询

    我需要编写一个 Ansible 脚本来在 MySQL 数据库中执行 SQL 查询 这是我尝试过的 你能指导一下吗 hosts localhost tasks name retrive data command mysql u root h
  • 在内连接中重用 mysql 子查询

    我正在尝试优化查询 试图避免重复用 指示的查询 复杂查询 使用两次 结果相同 原始查询 SELECT news FROM news INNER JOIN SELECT myposter FROM SELECT COMPLEX QUERY U
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • PL/SQL 过程:如何返回 select 语句?

    我想创建一个存储过程 on ORACLE数据库服务器我的问题是 我不知道如何返回 select 语句 这是程序中应包含的逻辑 输入参数 过滤器1 int 过滤器2 字符串 with cte as select val1 val2 stdde
  • 使用 Laravel 和 Eloquent 从表中选择全部

    我正在使用 Laravel 4 设置我的第一个模型 以从名为的表中提取所有行posts 在标准 MySQL 中我会使用 SELECT FROM posts 如何在 Laravel 4 模型中实现这一目标 我的完整模型源代码如下
  • 条件对列表的 In 子句

    有一个表 我需要通过在配对值列表中应用和条件来获取分页记录 下面是解释 假设我有一堂课Billoflading其中有各个领域 表中两个重要字段是 tenant billtype 我有一个包含值的对列表 tenant1 billtype1 t
  • 在 SQL 中如何获得整数的最大值?

    我试图从 MySQL 数据库中找出整数 有符号或无符号 的最大值 有没有办法从数据库本身提取这些信息 是否有我可以使用的内置常量或函数 标准 SQL 或 MySQL 特定的 At http dev mysql com doc refman
  • IN 运算符对 SQL 查询性能的影响有多大?

    我的 SQL 查询需要 9 个小时才能执行 见下文 Select Field1 Field2 From A Where Field3 IN 45 unique values here 当我将此查询拆分为 3 个完全相同的查询 仅每个 IN
  • PHP-MySQLi 连接随机失败并显示“无法分配请求的地址”

    大约两周以来 我一直在处理 LAMP 堆栈中最奇怪的问题之一 长话短说 与 MySQL 服务器的随机连接失败并显示错误消息 Warning mysqli real connect HY000 2002 Cannot assign reque
  • java.lang.NoSuchMethodError:没有虚拟方法 setTag(Ljava/lang/Object;)

    我刚刚完成使用登录和注册屏幕与齐射的代码 但在模拟器中运行时我收到此错误 java lang NoSuchMethodError No virtual method setTag Ljava lang Object Lcom android
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • 在 Oracle 中使用数据透视表的建议

    我需要一份报告 我应该使用数据透视表 报告将按类别分组 使用 case when 语句不好 因为有很多类别 您可以将 Northwind 数据库视为示例 所有类别将显示为列和报告将显示客户在类别中的偏好 我不知道另一个解决方案 并在互联网上
  • 蟒蛇 | MySQL | AttributeError:模块“mysql.connector”没有属性“connect”

    我正在学习 python 中的一个新库 mysql 我尝试执行以下命令 import mysql connector mydb mysql connector connect host localhost user root passwd
  • LEFT JOIN 比 INNER JOIN 快得多

    我有一张桌子 MainTable 有超过 600 000 条记录 它通过第二个表连接到自身 JoinTable 在父 子类型关系中 SELECT Child ID Parent ID FROM MainTable AS Child JOIN
  • 批处理文件并与数据库比较

    目前我正在开发一个 Spring Boot 应用程序 该应用程序定期尝试处理包含用户数据的文件 其中每行都包含userId and departamentId隔开 例如123534 13 该文件将包含数百万条记录 我的要求是以这样的方式将此
  • 无法加载身份验证插件“caching_sha2_password”

    我正在将 MySQL 8 0 与 MySQL Workbench 连接并收到以下错误 无法加载身份验证插件 caching sha2 password dlopen usr local mysql lib plugin caching sh
  • 如何对字段数据进行分组?

    我有 sql 查询来显示数据 SELECT artikel foto naam fotografer id fotografer name fotografer customer first name customer last name

随机推荐

  • win服务器开虚拟空间,win虚拟空间如何实现301重定向

    对于个人站长来说 window服务器的国内虚拟空间并不陌生 它不像apache那样可以支持 强大的 htaccess文件 对于站长来说 301重定向更不陌生 基本的将不带www的域名301指向带www的域名 如何实现这步 网上一大堆资料没几
  • 网络地址和广播地址

    1 总述 IP地址使用32位二进数表示 每一个主机或路由器的接口都有全局唯一的IP地址 NAT是个例外 它由网络号 NetID 和主机号 HostID 组成 它可以分为五类 如下 2 地址划分 1 A类地址 其中A类地址的前8位是网络号 后
  • 【超级无敌详细的韩顺平java笔记】从入门到精通---四种进制介绍

    1 进制介绍 对于整数 有四种表示方式 二进制 0 1 满 2 进 1 以 0b 或 0B 开头 十进制 0 9 满 10 进 1 八进制 0 7 满 8 进 1 以数字 0 开头表示 十六进制 0 9 及 A 10 F 15 满 16 进
  • 【Docker】Docker-compose容器编排的使用

    怒目的在CentOS系统中部署安装Docker compose容器编排服务 使用Docker compose服务构建Python Web镜像和容器 1 安装Docker compose 1 通过实训平台进入到操作系统界面 在 后输入yum
  • Eclipse中配置apache(包括apache下载、环境配置,添加eclipse)

    一开始是项目出现错误 The superclass javax servlet http HttpServlet was not found on the Java Build Path 解决方法 就是添加apache 但是过程有很曲折 还
  • Python注释(多行注释和单行注释)用法详解

    注释 Comments 用来向用户提示或解释某些代码的作用和功能 它可以出现在代码中的任何位置 Python 解释器在执行代码时会忽略注释 不做任何处理 就好像它不存在一样 在调试 Debug 程序的过程中 注释还可以用来临时移除无用的代码
  • 第1194期机器学习日报(2017-12-25)

    机器学习日报 2017 12 25 使用深度学习构建先进推荐系统 近期33篇重要研究概述 机器之心Synced 2017十大突破性技术之增强学习 爱可可 爱生活 半监督学习在图像分类上的基本工作方式 机器之心Synced 为给定任务自动生成
  • OpenCV仿射变换实现——Python代码案例

    OpenCV仿射变换实现 Python代码案例 OpenCV是一个基于Python的开源计算机视觉库 可以帮助我们进行图像处理和计算机视觉方面的研究 其中 仿射变换是一种常见的图像处理方法 可以实现旋转 放大 缩小 平移等功能 本文将介绍如
  • APP渗透 之 脱壳

    前言 随着人们安全意识越来越加强 很多开发者逐渐开始加shell也就是壳 所以脱壳 砸壳还是很有必要会的 1 Frida是什么 Frida是一款易用的跨平Hook 工具 Java 层到 Native 层的 Hook 无所不能 是一种 动态
  • elementui的分页中的页面查看详情后返回当前页

    列表页 methods 改变页数 currentChange val this page currentPage val 缓存当前页码数 sessionStorage setItem currentPage val 调取表格列表接口 thi
  • 获取svg和svg内容的方法

    方法一 使用正则表达式 1 先找到div中包含的所有内容 2 然后用正则表达式匹配svg开头 svg结束的标签 var data window layout canvas html var content window svg html v
  • LeetCode-160. 相交链表

    这是一道真的非常巧妙的题 题解思路如下 如果让他们尾端队齐 那么从后面遍历就会很快找到第一个相交的点 但是逆序很麻烦 于是有一个巧妙的思路诞生了 如果让短的先走完自己的再走长的 长的走完走短的 他俩就会正好对齐 于是 Definition
  • JAVA主流压缩解压工具对比、用法与选取

    一 JAVA主流压缩工具 java util zip 说明 Java标准库提供的压缩与解压功能 包含在java util zip包中 通过ZipInputStream和ZipOutputStream可以实现ZIP格式的压缩与解压缩操作 适用
  • Redis发布订阅和事物笔记

    Redis 发布订阅 Redis 发布订阅 pub sub 是一种消息通信模式 发送者 pub 发送消息 订阅者 sub 接收消息 Redis 客户端可以订阅任意数量的频道 下图展示了频道 channel1 以及订阅这个频道的三个客户端 c
  • 闻达(Wenda):基于Chatglm6b的知识库+大语言模型融合项目

    背景 随着ChatGPT模型的一炮而红 大语言模型已然风靡全球 成为了全世界闪烁的焦点 目前 越来越多的研发人员投入到大语言模型的扩展开发中 闻达 Wenda 便是其中一项重要成果 闻达源于清华大学开源的ChatGLM6b项目 作为少有的在
  • 基于灰色神经网络的订单需求预测代码

    目录 1 概述 2 代码 3 结果 1 概述 BP Back Propagation 神经网络模型是一种信息前向传播 误差反向传播的神经网络模型0 能够通过训练样本反向传播调节网络的阈值和权值 使误差平方最小 BP神经网络是目前应用最广泛的
  • Linux命令学习 - Ntpdate

    Ntpdate 命令简介 安装 网络时间同步命令 修改crontab文件添加或修改定时任务 语法 参数 命令简介 ntpdate 使用网络计时协议 NTP 设置日期和时间 此命令仅应用于 AIX 4 2 或后期版本 通过轮询指定的确定正确时
  • buuctf web [极客大挑战 2019]Upload

    上传头像 上传一下 看看能不能成功 抓包 抓取上传时的数据 看看限制条件 改两个地方 符合上传图片的要求 上传试试 一句话木马的
  • 作为 Java初学者,刚学完JavaSE,有什么可以做的项目吗

    文章目录 一 基于面向对象开发的黑框程序 1 1 开发工具 1 2 至少掌握这些 1 3 推荐做的项目 二 Java SE 桌面窗体小程序 基本可以忽略 三 Java SE 高级应用 四 下节预告 Author Gorit Date 202
  • MybatisPlus使用Left Join...on...一对多多表联查和Ipage分页返回数据问题

    问题 一对多关系表使用MybatisPlus的Ipage进行分页查询 会先执行联表查询sql语句 然后进行分页 像图中联表查询一对多关系 会有多条重复数据 使用Ipage分页会将这10条数据返回到xml中resultMap绑定的type 造