MyBatis-Plus的自带分页方法生成的SQL失败:The error occurred while setting parameters

1、error描述

数据库是postgres,Java使用mybatis-plus的分页功能,生成的分页SQL不能正常运行。

"msg": "nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database.  
Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : SELECT COUNT(1) FROM mfile file WHERE (1 = 1) AND file.file_name LIKE CONCAT('%', ?, '%') The error may exist in URL [jar:file:/**/mapper/**Mapper.xml]The error may involve defaultParameterMap<br/>The error occurred while setting parameters<br/>Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: 
Error: Method queryTotal execution error of sql : SELECT COUNT(1) FROM mfile file WHERE (1 = 1) AND file.file_name LIKE CONCAT('%', ?, '%') <br/>

2、Java代码

     public IPage<MFileVO> queryByPage(MFileVO mFile) throws SQLException, ClassNotFoundException {IPage<MFileVO> mFileEntityIPage = baseMapper.queryByPage(mFile.mkPage(), mFile);...}

3、mapper的SQL

 select file.*,version.version_number as versionNumberfrom file fileleft join file_version version on version.id=file.version_idwhere (1=1)<if test="entity.dataGuid != null and entity.dataGuid != ''">AND file.data_parent_ids like CONCAT('%', #{entity.dataGuid}::VARCHAR, '%')</if><if test="entity.fileName != null and entity.fileName != ''">AND file.file_name like CONCAT('%', #{entity.fileName}, '%')</if>

4、原因

  1. CONCAT 在 PostgreSQL 中的行为
    PostgreSQL 不支持 CONCAT() 函数,应使用 || 进行字符串拼接。
    示例错误写法:
  LIKE CONCAT('%', #{entity.fileName}, '%')

正确写法(推荐):

  LIKE '%' || #{entity.fileName} || '%'

5、测试

修改前,MayBatis-Plus自动生成的分页count语句能在Navicat和pgadmin4中正常执行,运行代码时报错

SELECTCOUNT(1) 
FROMmfile file 
WHERE(1 = 1) AND file.file_name LIKE CONCAT('%', 'test', '%');

修改后运行代码也不报错了,自动生成的分页count语句如下

SELECTCOUNT(1) 
FROMmfile file 
WHERE(1 = 1) AND file.file_name LIKE '%' || 'test' || '%' 

我记得项目初始时并没有这种错误,能正常运行,可能是某些组件升级过,导致接口报错了。

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

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

相关文章

Redis从入门到实战 - 原理篇

一、数据结构 1. 动态字符串SDS 我们都知道Redis中保存的key是字符串&#xff0c;value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。 不过Redis没有直接使用C语言中的字符串&#xff0c;因为C语言字符串存在很多问题&#xff1a; 获取字符串长…

人形机器人通过观看视频学习人类动作的技术可行性与前景展望

摘要 本文深入探讨人形机器人通过观看视频学习人类动作这一技术路线的正确性与深远潜力。首先阐述该技术路线在模仿人类学习过程方面的优势&#xff0c;包括对人类动作、表情、发音及情感模仿的可行性与实现路径。接着从技术原理、大数据训练基础、与人类学习速度对比等角度论证…

高分辨率北半球多年冻土数据集(2000-2016)

关键数据集分类&#xff1a;冰冻圈数据集时间分辨率&#xff1a;10 year < x < 100 year空间分辨率&#xff1a;1km - 10km共享方式&#xff1a;开放获取数据大小&#xff1a;339.79 MB数据时间范围&#xff1a;2000-01-01 — 2016-12-31元数据更新时间&#xff1a;2022-…

零售智能执行大模型架构设计:从空间建模到上下文推理,再到智能Agent

零售智能执行大模型架构设计&#xff1a;从空间建模到上下文推理&#xff0c;再到智能Agent &#x1f9e0; 引言&#xff1a;零售智能执行的再定义 在传统零售执行中&#xff0c;面对SKU数量庞杂、货架布置多变、陈列标准难以落地等问题&#xff0c;靠人力巡检或轻量识别模型已…

RIP 协议实验全记录:从配置到问题解决

在网络世界中&#xff0c;路由协议就像是交通指挥员&#xff0c;引导数据在不同网络之间顺畅传输。今天&#xff0c;我们就来深入探索 RIP&#xff08;Routing Information Protocol&#xff09;协议&#xff0c;通过一系列实验&#xff0c;揭开它的神秘面纱&#xff01; 一、搭…

基于SpringBoot的网上租赁系统设计与实现

项目简介 本项目是基于 Spring Boot Vue 技术栈开发的 网上租赁系统。该系统通过前后端分离的架构&#xff0c;提供用户和管理员两种角色的操作权限&#xff0c;方便用户进行商品租赁、订单管理、信息查询等操作&#xff0c;同时也为管理员提供了商品管理、用户管理、订单管理…

uni-app学习笔记六-vue3响应式基础

一.使用ref定义响应式变量 在组合式 API 中&#xff0c;推荐使用 ref() 函数来声明响应式状态&#xff0c;ref() 接收参数&#xff0c;并将其包裹在一个带有 .value 属性的 ref 对象中返回 示例代码&#xff1a; <template> <view>{{ num1 }}</view><vi…

CUDA 性能优化 | 共享内存机制 / 向量化访存策略

注&#xff1a;本文为“CUDA 性能优化”相关文章合辑。 图片清晰度受引文原图所限。 重传部分 CSDN 转储失败图片。 略作重排&#xff0c;未整理去重。 如有内容异常&#xff0c;请看原文。 Shared Memory 上的广播机制和 Bank Conflict 到底是怎么回事&#xff1f; 发表于 2…

NVMe高速传输之摆脱XDMA设计1

NVMe IP放弃XDMA原因 选用XDMA做NVMe IP的关键传输模块&#xff0c;可以加速IP的设计&#xff0c;但是XDMA对于开发者来说&#xff0c;还是不方便&#xff0c;原因是它就象一个黑匣子&#xff0c;调试也非一番周折&#xff0c;尤其是后面PCIe4.0升级。 因此决定直接采用PCIe设…

企业级单元测试流程

企业级的单元测试流程不仅是简单编写测试用例&#xff0c;而是一整套系统化、自动化、可维护、可度量的工程实践&#xff0c;贯穿从代码编写到上线部署的全生命周期。下面是一个尽可能完善的 企业级单元测试流程设计方案&#xff0c;适用于 Java 生态&#xff08;JUnit Mockit…

关于vector、queue、list哪边是front、哪边是back,增加、删除元素操作

容器的 front、back 及操作方向 1.1vector&#xff08;动态数组&#xff09; 结构&#xff1a;连续内存块&#xff0c;支持快速随机访问。 操作方向&#xff1a; front&#xff1a;第一个元素&#xff08;索引 0&#xff09;。 back&#xff1a;最后一个元素&#xff08;索引…

嵌入式之汇编程序示例

目录 经典例子:求阶乘 一:数组求和 二:数据压栈退栈 三:函数嵌套调用 经典例子:求阶乘 知识点: BGT 用于判断 r2 > r0&#xff0c;确保循环执行 恰好 r0 次。BNE 用于判断 r2 ≠ r0&#xff0c;会导致循环多执行一次&#xff0c;得到错误结果。 这就是阶乘代码中必须…

【MySQL】第九弹——索引(下)

文章目录 &#x1f30f;索引(上)回顾&#x1f30f;使用索引&#x1fa90;自动创建索引&#x1fa90;手动创建索引&#x1f680;主键索引&#x1f680;普通索引&#x1f680;唯一索引&#x1f680;复合索引 &#x1fa90;查看索引&#x1fa90;删除索引&#x1f680;删除主键索引…

毕业论文格式(Word)

目录 Word目录怎么自动生成&#xff1f;快速生成试试这3个方法&#xff01; - 知乎https://zhuanlan.zhihu.com/p/692056836目录生成需要先设置标题样式&#xff0c;这个不仅是目录生成需要&#xff0c;和后续的图表也有关系。 最好不要自己创建新的样式&#xff0c;而是在现有…

PostGIS实现栅格数据转二进制应用实践【ST_AsBinary】

ST_AsBinary解析与应用实践&#xff08;同ST_AsWKB&#xff09; 一、函数概述二、核心参数解析三、典型用法示例四、Out-DB 波段处理机制五、二进制格式与其他格式的转换六、性能与存储优化七、应用场景八、注意事项九、扩展应用&#xff1a;基于Python Web的栅格二进制数据的…

线性回归原理推导与应用(七):逻辑回归原理与公式推导

逻辑回归是一种分类算法&#xff0c;常用于二分类&#xff0c;也就是得出的结果为是和不是&#xff0c;例如通过各种因素判断一个人是否生病&#xff0c;信用卡是否违约等。逻辑回归在社会和自然科学中应用非常广泛&#xff0c; 前置知识 线性回归 逻辑回归的底层方法就是线…

Fastrace:Rust 中分布式追踪的现代化方案

原文链接&#xff1a;Fastrace: A Modern Approach to Distributed Tracing in Rust | FastLabs / Blog 摘要 在微服务架构中&#xff0c;分布式追踪对于理解应用程序的行为至关重要。虽然 tokio-rs/tracing 在 Rust 中被广泛使用&#xff0c;但它存在一些显著的挑战&#xf…

水果系列数据集- 葡萄grapes>> DataBall

该数据集可以用于目标检测&#xff0c;水果分类 &#xff0c;文生图相关项目。 以下是图片样例&#xff1a;

HTTP协议接口三种测试方法之-postman

HTTP协议作为现代Web开发的基石&#xff0c;其接口测试是开发过程中不可或缺的环节。Postman作为最流行的API测试工具之一&#xff0c;能够极大提升我们的测试效率。本文将详细介绍如何使用Postman进行HTTP接口测试。 一、HTTP协议基础回顾 在开始使用Postman之前&#xff0c…

佰力博科技与您探讨半导体电阻测试常用的一些方法

一、两探针法​ 两探针法是一种较为基础的测试方法。该方法将两根探针与半导体样品表面紧密接触&#xff0c;通过电源在两根探针之间施加电压&#xff0c;同时使用电流表测量通过样品的电流&#xff0c;再根据欧姆定律计算电阻。​这种方法的优点在于操作简单、设备要求较低&a…