解决若依框架多次list查询时,分页失效问题

一、问题背景

当若依框架遇到两次及以上的list查询时,会引发分页查询失效问题,如下图:
在这里插入图片描述

二、分析原因

分页查询原理

       Mybatis的分页原理,大致就是使用MyBatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的 SQL,然后重写 SQL,实现分页查询。

分析原因

若依框架中,使用的是PageHelper分页对象进行分页查询:
       当一次请求涉及到多个list查询时,第一次的list查询会把这个PageHelper分页对象消耗掉,因此后面的查询就无法实现分页查询进而直接查询所有数据.
       当理解了分页原理以及产生上述问题的原因后,解决这个问题不过是信手拈来的事了,具体做法如下:

三、解决办法

  1. 抽离出若依框架的分页插件工具
/*** FileName: PageUtil* Date:     2023.9.23 17:00* Description: 分页工具---解决若依框架多次list查询时,分页失效问题*/
package com.ncjr.common.core.page;import com.github.pagehelper.PageHelper;
import com.ncjr.common.utils.StringUtils;
import com.ncjr.common.utils.sql.SqlUtil;/*** 分页工具---解决若依框架多次list查询时,分页失效问题* @author WuXingZheng* @date 2023.9.23* @version 1.0.0*/
public class PageUtil {public static void startPage(){PageDomain pageDomain = TableSupport.buildPageRequest();Integer pageNum = pageDomain.getPageNum();Integer pageSize = pageDomain.getPageSize();if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());PageHelper.startPage(pageNum, pageSize, orderBy);}}
}
  1. 在最后一次查询时,才开启分页查询
    控制器调用:
 @GetMapping("/list")@ApiOperation("查询XXX产品列表")public TableDataInfo list(XXXProduct pro) {// startPage();  在控制器中开启分页查询,会导致后续的分页查询失效,因此不能在控制器中开启分页查询List<XXXProduct> list =service.selectFinancialLeasingProductList(pro);return getDataTable(list);}

具体实现:

  @Overridepublic List<XXXProduct> selectXXXProductList(XXXProduct product) {List<String> organizeIds = utilService.getCurrentUserOrganizeIds();//最后一次list查询时,才开启分页数据查询,防止分页实失效PageUtil.startPage();List<XXXProduct> list = mapper.selectXXXProductList(organizeIds,product);return list;}

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

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

相关文章

2023(2024届)计算机保研经验分享,圆梦山东大学

前言&#xff1a; Hello大家好&#xff0c;我是Dream&#xff0c;好久不见啦&#xff01;在这不见的半年多时间里我一直在全身心的投入保研之中&#xff0c;在写下这份面经时&#xff0c;真的是感慨颇多&#xff0c;思绪万千。站在这个时间点上&#xff0c;回首过去的几个月&am…

Go:实现SMTP邮件发送订阅功能(包含163邮箱、163企业邮箱、谷歌gmail邮箱)

需求很简单&#xff0c;就是用户输入自己的邮箱后&#xff0c;使用官方邮箱给用户发送替邮件模版 目录 前置邮件模版邮箱开启SMTP服务163邮箱163企业邮箱谷歌gmail邮箱腾讯企业邮箱-失败其他邮箱-未操作 邮件发送核心代码config.yaml配置读取邮件相关配置发送邮件 附录 前置 邮…

使用关键字interface来声明使用接口-PHP8知识详解

继承特性简化了对象、类的创建&#xff0c;增加了代码的可重用性。但是php8只支持单继承&#xff0c;如果想实现多继承&#xff0c;就需要使用接口。PHP8可以实现多个接口。 接口类通过关键字interface来声明&#xff0c;接口中不能声明变量&#xff0c;只能使用关键字const声明…

tcpdump(一)基础理论知识

一 抓包分析技术初探 说明&#xff1a; 本篇章跟tcp/ip的知识没有关系,只是讲解tcpdump工具背景补充&#xff1a; 抓包是做报文分析的第一步敬畏心&#xff1a; 隔行如隔山,不要想当然 ① 背景 ② 抓包技术名词 1、捋顺这些技术的来龙去脉甚至八卦;2、这样我们在后续课程…

QGIS文章五——对遥感影像进行土地类型分类-选择遥感影像

关于下载遥感影像的地方有很多&#xff1a; 1、国家综合地球观测数据共享平台&#xff08;https://www.chinageoss.cn/&#xff09; 2、地理空间数据云&#xff08;https://www.gscloud.cn/&#xff09; 3、美国地质勘探局官网&#xff08;https://earthexplorer.usgs.gov/&…

线性调频雷达简介

一、频率调制模式 Chirp雷达是脉冲雷达的统称,其中发射的脉冲是脉冲内调制的。这可以是脉冲上的频率调制(FMOP)或脉冲上的相位调制(PMOP)。发射的脉冲较长,但具有与脉冲功率高得多的短脉冲相同的能量含量 图1 线性频率调制 FMOP可能是: 线性频率调制– up-chirp – dow…

目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(二)

前言 目标识别如今以及迭代了这么多年&#xff0c;普遍受大家认可和欢迎的目标识别框架就是YOLO了。按照官方描述&#xff0c;YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性…

零基础如何自学网络安全,基于就业前景全方位讲解,包教包会

你是否对网络空间安全充满好奇&#xff1f;想要解开网络世界神秘的面纱&#xff1f;你是否对黑客技术着迷&#xff1f;而找不到合适的学习途径&#xff1f;你是否遭到过各种各样的网络攻击&#xff0c;却因知识的匮乏束手无策&#xff1f; 那么接下来将为你全面介绍&#xff0c…

css--踩坑

1. 子元素的宽高不生效问题 设置flex布局后&#xff0c;子元素的宽高不生效问题。 如果希望子元素的宽高生效&#xff0c;解决方法&#xff0c;给子元素添加如下属性&#xff1a; flex-shrink: 0; flex-shrink: 0;2. 横向滚动&#xff08;子元素宽度不固定&#xff09; /* tab…

Centos7升级OpenSSH9.1

最近遇到了服务器漏洞&#xff0c;需要对服务器的OpenSSH版本进行升级&#xff0c;查阅了相关资料&#xff0c;总结出了一套比较简单的方案。中间遇到的个别问题也进行了记录&#xff0c;供大家参考。 下载准备 从https://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/opens…

【外汇天眼】携手共护外汇投资:2023年WikiFX晚宴首次在越南圆满举行

9月23日&#xff0c;WikiFX在越南与Wsaas合作举办了一场晚宴&#xff0c;以此表达对合作伙伴的感谢。此次晚会不仅仅是各位行业精英聚一起分享经验、了解行业动向的机会&#xff0c;也是WikiFX在越南分部第一次思考与复盘的活动。 回顾过去——WikiFX在越南的四年 从2019年开始…

linearlayout中使用多个weight导致部分子控件消失异常

问题描述&#xff1a; 在一个linearlayout中写了两个用到weight的布局&#xff0c;在androidstudio中显示正常 但是代码跑起来之后最下面哪一行都消失了&#xff1b; 解决办法1 把两个用到weight的改成一个了&#xff0c;外面那层的weight写成固定宽度就能正常显示出丢失的…

Shibuya109 109 可穿戴系列来啦!

准备好用 “SHIBUYA109”可穿戴系列来提升你们的时尚感。该系列包含各种时尚相关单品&#xff0c;从 9 月 26 日起也将在 SHIBUYA109 体验中提供。用大量尖端的日本时尚单品来装扮你的人物化身吧。 探索元宇宙中 SHIBUYA109 的世界&#xff0c;穿上可爱的时尚单品&#xff0c;…

python scanpy spatial空转全流程

Spatial mapping of cell types across the mouse brain (1/3) - estimating reference expression signatures of cell types — cell2location documentation Spatial mapping of cell types across the mouse brain (2/3) - cell2location — cell2location documentation #…

深度学习基础之GFLOPS(2)

什么是GFLOPS 神经网络的GFLOPS&#xff08;Giga FLoating-Point Operations Per Second&#xff09;代表了神经网络模型执行计算的速度和计算能力。这可以用一个类比来解释&#xff1a; GFLOPS就像神经网络模型的"运算速度"标签。 想象你有两个数学家&#xff0c…

期望最大化(EM)算法:从理论到实战全解析

目录 一、引言概率模型与隐变量极大似然估计&#xff08;MLE&#xff09;Jensen不等式 二、基础数学原理条件概率与联合概率似然函数Kullback-Leibler散度贝叶斯推断 三、EM算法的核心思想期望&#xff08;E&#xff09;步骤最大化&#xff08;M&#xff09;步骤Q函数与辅助函数…

【Spring笔记05】Spring的自动装配

这篇文章&#xff0c;主要介绍的内容是Spring的自动装配、五种自动装配的方式。 目录 一、自动装配 1.1、什么是自动装配 1.2、五种自动装配方式 &#xff08;1&#xff09;no &#xff08;2&#xff09;default &#xff08;3&#xff09;byType &#xff08;4&#xf…

Ansys Optics Launcher 提升客户体验

概述 为了改善用户体验&#xff0c;Ansys Optics 团队开发了一个新的一站式启动应用程序&#xff0c;简化了工作流程并提高了效率。随着Ansys 2023 R2的最新更新&#xff0c;Ansys Optics Launcher 现已安装在Ansys Speos, Ansys Lumerical和Ansys Zemax OpticStudio中。作为一…

Docker之Dockerfile搭建lnmp

目录 一、搭建nginx ​编辑 二、搭建Mysql&#xff08;简略版&#xff09; 三、搭建PHP 五、补充 主机名ip地址主要软件mysql2192.168.11.22Docker 代码示例 systemctl stop firewalld systemctl disable firewalld setenforce 0docker network create --subnet172.18.…