MyBatisPlus报错:Failed to process,please exclude the tableName or statementId问题

 更新时间:2024年08月05日 10:58:34   作者:达希_  
这篇文章主要介绍了MyBatisPlus报错:Failed to process,please exclude the tableName or statementId问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

报错详情

Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId. Error SQL: xxxxxxxx

报错原因

使用了自定义SQL,可能含有特殊的函数或者复杂的语法,因而不被JSqlParser(SQL解析器)所支持(无法添加租户id之类的字段),以致抛出了JSQLParserException

该异常又被MyBatisPlus捕获,并封装成MybatisPlusException后抛出。

源码:

com.baomidou.mybatisplus.core.parser.AbstractJsqlParser

异常解析图

解决方法

Failed to process, please exclude the tableName or statementId

翻译过来就是:

处理失败,请将表名或者语句id进行排除。

P.S. 提示的很具体,但读起来容易懵,因为不熟悉的人并不知道是租户id出了问题

方法一:排除表名

在配置MyBatisPlus的TenantHandler时在doTableFilter方法中将该表过滤掉(也就是不处理这个表的租户id字段)。

方法二:排除该语句

在自定义SQL的接口上标注 @SqlParser(filter = true)

    @SqlParser(filter = true)
    @Select("此处应有很酷炫的SQL")
    void selectDemo();

官方对于此注解的解释是:

租户注解,支持method上以及mapper接口上,默认值为false;

  • true 表示过滤SQL解析,即不会进入ISqlParser解析链;
  • false 会进解析链并追加例如tenant_id等条件。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • jquery对输入框内容的数字校验代码实例

    jquery对输入框内容的数字校验代码实例

    这篇文章主要介绍了jquery对输入框内容的数字校验代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 利用栈使用简易计算器(Java实现)

    利用栈使用简易计算器(Java实现)

    这篇文章主要为大家详细介绍了Java利用栈实现简易计算器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Java中用爬虫进行解析的实例方法

    Java中用爬虫进行解析的实例方法

    在本篇文章里小编给大家整理的是一篇关于Java中用爬虫进行解析的实例方法,有需要的朋友们可以学习参考下。
    2020-12-12
  • Springboot新建项目Spring Initializr Error问题及解决

    Springboot新建项目Spring Initializr Error问题及解决

    这篇文章主要介绍了Springboot新建项目Spring Initializr Error问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Mac使用Idea配置传统SSM项目(非maven项目)

    Mac使用Idea配置传统SSM项目(非maven项目)

    本文主要介绍了Mac使用Idea配置传统SSM项目(非maven项目),将展示如何设置项目结构、添加依赖关系等,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 基于SpringBoot2的Shiro最简配置操作(两个文件)

    基于SpringBoot2的Shiro最简配置操作(两个文件)

    这篇文章主要介绍了基于SpringBoot2的Shiro最简配置操作(两个文件),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SpringBoot使用Maven插件进行项目打包的方法

    SpringBoot使用Maven插件进行项目打包的方法

    这篇文章主要介绍了SpringBoot使用Maven插件进行项目打包的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Java使用x-www-form-urlencoded发请求方式

    Java使用x-www-form-urlencoded发请求方式

    在开发中经常使用JSON格式,但遇到x-www-form-urlencoded格式时,可以通过重新封装处理,POSTMan和APIpost工具中对此编码的称呼不同,分别是x-www-form-urlencoded和urlencoded,分享这些经验希望对他人有所帮助
    2024-09-09
  • Git工具 conflict冲突问题解决方案

    Git工具 conflict冲突问题解决方案

    这篇文章主要介绍了Git工具 conflict冲突问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • springboot数据访问和数据视图的使用方式详解

    springboot数据访问和数据视图的使用方式详解

    这篇文章主要为大家介绍了springboot数据访问和数据视图的使用方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06

最新评论