解决 Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token:XXXXXXX_存储过程 encountered unexpected token: ")" ")-程序员宅基地

技术标签: java  ORM框架  mybatis  开发语言  

场景

使用项目引入mybatisplus与MyBatis-Plus-Join进行联表查询时报的错误 ,复制sql到客户端执行没有报错

解决

可能性一

在网上找的原因大多是说使用到了多租户功能,Mybatis-plus 会进行数据权限的过滤,添加注解来解决,因为使用版本时3.4以上,是在XXXXMapper.java的方法上添加如下注解

@InterceptorIgnore(tenantLine = "true")

还是报错。

可能性二

找到第二个可能原因是说依赖冲突,可能是Mybatis-plus包与pagehelper包存在com.github.jsqlparser:jsqlparser冲突

解决的话,要么排除两个依赖中其中一个 的jsqlparser的包,或者全部排除重新引入一个。

但是,项目这里只有Mybatis-plus包

最后

问题应该还是依赖的问题

尝试将Mybatis-plus包的jsqlparser的包排除,原本Mybatis-plus包的jsqlparser版本是4.6,重新引入4.6后,还是报错。改为4.2后,不再报错。

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>jsqlparser</artifactId>
                    <groupId>com.github.jsqlparser</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
            <version>4.2</version>
        </dependency>

后面发现原因是Mybatis-plus在sql语句中插入了2行空行,导致解析失败报错

所以也可以在yml文件通过配置解决

mybatis-plus:
  configuration:
    shrink-whitespaces-in-sql: true #从SQL中删除多余的空格字符 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_54761389/article/details/133947585

智能推荐

hive学习笔记之四:分区表-程序员宅基地

文章浏览阅读373次,点赞4次,收藏4次。笔者已经把面试题和答案整理成了面试专题文档《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!链图片转存中…(img-4xkqGpj1-1712104936689)][外链图片转存中…(img-6VtfOlP7-1712104936689)][外链图片转存中…(img-WoiUrEg2-1712104936690)][外链图片转存中…(img-W72fxn2J-1712104936690)]

数字图像处理使用计算机对,数字图像处理的应用现状及发展方向-程序员宅基地

文章浏览阅读5.6k次。随着计算机技术的不断发展,数字图像处理技术的应用也愈发广阔。图像是人们接受、表达、传递信息的快捷方式,通过计算机程序的运用,将图像用数字的形式表现出来,可以更加全面的控制图像处理,在全球各个尖端领域都有发展的前景。【关键词】数字 图像处理 计算机技术1 数字图像处理技术的优点数字图像处理是指利用数字硬件与计算机,将图像信息转换为电子信号,进行相应的数学运算,用以提高图像的实用性。数字图像处理精确度..._谈谈你对数字图像处理课程的理解,及其数字图像处理用途和使用场合的认识

stl map遍历和删除的方法_vs2008 stl map查询equal_range(),并删除-程序员宅基地

文章浏览阅读6.1k次。for(;iter!=mapStudent.end();){ if((iter->second)>=aa) { //满足删除条件,删除当前结点,并指向下面一个结点 mapStudent.erase(iter++); } else { //_vs2008 stl map查询equal_range(),并删除

rank函数python_Python pandas.DataFrame.rank函数方法的使用-程序员宅基地

文章浏览阅读1.4k次。DataFrame.rank(self: ~FrameOrSeries,axis=0,method: str = 'average',numeric_only: Union[bool,NoneType] = None,na_option: str = 'keep',ascending: bool = True,pct: bool = False)→ ~FrameOrSeries计算..._python dataframe rank

彻底扒光 通过智能路由器拆解看其本质-程序员宅基地

文章浏览阅读1.7k次。可以看到很多联发科的MT芯片摘自:https://net.zol.com.cn/531/5312999.html彻底扒光 通过智能路由器拆解看其本质2015-07-23 00:40:00[中关村在线 原创] 作者:陈赫|责编:白宁收藏文章 分享到 评论(24)关注智能路由器拆解的朋友们注意啦!我们已经将这五款产品彻底扒开,将主板的真容展现在了大家的眼前。网友们可以看见这些智能路由器主板的做工和用料,我们还为网友们展示了主要的电子元器件,供大家品评观赏。..._路由器拆解

Java--深入JDK和hotspot底层源码剖析Thread的run()、start()方法执行过程_jdk的源码hotspot跟jdk是分开的-程序员宅基地

文章浏览阅读2.1k次,点赞101次,收藏78次。【学习背景】今天主要是来了解Java线程Thread中的run()、start()两个方法的执行有哪些区别,会给出一个简单的测试代码样例,快速理解两者的区别,再从源码层面去追溯start()底层是如何最终调用Thread#run()方法的,个人觉得这样的学习不论对面试,还是实际编程来说都是比较有帮助的。进入正文~学习目录一、代码测试二、源码分析2.1 run()方法2.2 start()方法三、使用总结一、代码测试执行Thread的run()、start()方法的测试代码如下:public_jdk的源码hotspot跟jdk是分开的

随便推点

SM4国密算法原理及python代码实现_根据sm4_s计算sm4_sbox_t-程序员宅基地

文章浏览阅读6.6k次,点赞13次,收藏54次。SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。在商用密码体系中,SM4主要用于数据加密,其算法公开,分组长度与密钥长度均为128bit,加密算法与密钥扩展算法都采用32轮非线性迭代结构,S盒为固定的8比特输入8比特输出。_根据sm4_s计算sm4_sbox_t

DMA映射 dma_addr_t-程序员宅基地

文章浏览阅读617次。DMA映射一个DMA映射是要分配的DMA缓冲区与为该缓冲区生成的、设备可访问地址的组合。DMA映射建立了一个新的结构类型——dma_addr_t来表示总线地址。dma_addr_t类型的变量对驱动程序是不透明的, 唯一允许的操作是将它们传递给DMA支持例程以及设备本身。根据DMA缓冲区期望保留的时间长短,PCI代码有两种DMA映射: 1) 一致性映射; 2) 流式DMA映射(推荐)。..._dma_addr_t

XSS跨站脚本攻击漏洞_小明是公司的开发工程师,发现公司网站存在xss漏洞,通过修改javascript代码进-程序员宅基地

文章浏览阅读1k次。XSS(跨站脚本攻击)是一种常见的网络安全漏洞,它允许攻击者在网站中植入恶意的脚本代码,当其他用户访问该网站时,这些脚本代码会在用户的浏览器中执行。这可能会导致严重的安全后果,比如窃取用户的敏感信息,欺骗用户,或者在用户的浏览器中执行恶意操作。XSS漏洞通常出现在网站中输入数据未经过滤或者不当过滤的情况下,攻击者可以通过向网站发送带有恶意脚本的数据,使得脚本在用户的浏览器中执行。在反射型XSS中,攻击者向网站发送一个带有恶意脚本的URL,当其他用户点击该URL时,恶意脚本就会在用户的浏览器中执行。_小明是公司的开发工程师,发现公司网站存在xss漏洞,通过修改javascript代码进

软件体系结构_采用结构化技术开发的软件是否具有体系结构?-程序员宅基地

文章浏览阅读2k次。 软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组组合连接起来。这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。 一、软件体系结构的定义  虽然软件体系结构已经在软件工程领域中有着广泛的应用,但迄今为止还没有一个被大家所公认的_采用结构化技术开发的软件是否具有体系结构?

springbbot运行无法编译成功,找不到jar包报错:Error:(3, 46) java: 程序包org.springframework.context.annotation不存在-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏2次。文章目录问题描述:解决方案:问题描述:提示:idea springbbot运行无法编译成功,找不到jar包报错E:\ideaProject\demokkkk\src\main\java\com\example\demo\config\WebSocketConfig.javaError:(3, 46) java: 程序包org.springframework.context.annotation不存在Error:(4, 46) java: 程序包org.springframework.conte_error:(3, 46) java: 程序包org.springframework.context.annotation不存在

react常见面试题_recate面试-程序员宅基地

文章浏览阅读6.4k次,点赞6次,收藏36次。1、redux中间件中间件提供第三方插件的模式,自定义拦截 action -&gt; reducer 的过程。变为 action -&gt; middlewares -&gt; reducer 。这种机制可以让我们改变数据流,实现如异步 action ,action 过滤,日志输出,异常报告等功能。常见的中间件:redux-logger:提供日志输出redux-thunk:处理异步操作..._recate面试

推荐文章

热门文章

相关标签