MyBatisPlus報(bào)錯(cuò):Failed to process,please exclude the tableName or statementId問題
報(bào)錯(cuò)詳情
Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Failed to process, please exclude the tableName or statementId. Error SQL: xxxxxxxx
報(bào)錯(cuò)原因
使用了自定義SQL,可能含有特殊的函數(shù)或者復(fù)雜的語(yǔ)法,因而不被JSqlParser(SQL解析器)所支持(無法添加租戶id之類的字段),以致拋出了JSQLParserException。
該異常又被MyBatisPlus捕獲,并封裝成MybatisPlusException后拋出。
源碼:
com.baomidou.mybatisplus.core.parser.AbstractJsqlParser

解決方法
Failed to process, please exclude the tableName or statementId
翻譯過來就是:
處理失敗,請(qǐng)將表名或者語(yǔ)句id進(jìn)行排除。
P.S. 提示的很具體,但讀起來容易懵,因?yàn)椴皇煜さ娜瞬⒉恢朗亲鈶鬷d出了問題
方法一:排除表名
在配置MyBatisPlus的TenantHandler時(shí)在doTableFilter方法中將該表過濾掉(也就是不處理這個(gè)表的租戶id字段)。
方法二:排除該語(yǔ)句
在自定義SQL的接口上標(biāo)注 @SqlParser(filter = true):
@SqlParser(filter = true)
@Select("此處應(yīng)有很酷炫的SQL")
void selectDemo();
官方對(duì)于此注解的解釋是:
租戶注解,支持method上以及mapper接口上,默認(rèn)值為false;
- true 表示過濾SQL解析,即不會(huì)進(jìn)入ISqlParser解析鏈;
- false 會(huì)進(jìn)解析鏈并追加例如tenant_id等條件。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java Guava排序器Ordering原理及代碼實(shí)例
這篇文章主要介紹了Java Guava排序器Ordering原理及代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
SpringBoot中Date格式化處理的三種實(shí)現(xiàn)
Spring Boot作為一個(gè)簡(jiǎn)化Spring應(yīng)用開發(fā)的框架,提供了多種處理日期格式化的方法,本文主要介紹了SpringBoot中Date格式化處理實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
spring mvc實(shí)現(xiàn)文件上傳并攜帶其他參數(shù)的示例
本篇文章主要介紹了spring mvc實(shí)現(xiàn)文件上傳并攜帶其他參數(shù)的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
Springboot下使用Redis管道(pipeline)進(jìn)行批量操作
本文主要介紹了Spring?boot?下使用Redis管道(pipeline)進(jìn)行批量操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
MyBatis新增數(shù)據(jù)時(shí)自增id的兩種寫法小結(jié)
本文介紹了在MyBatis中配置自增ID的兩種方法:一種是通過在Mapper文件中設(shè)置useGeneratedKeys和keyProperty,另一種是使用selectKey標(biāo)簽,批量插入時(shí),同樣采用useGeneratedKeys標(biāo)簽,感興趣的可以了解一下2024-09-09
spring boot加載freemarker模板路徑的方法
這篇文章主要介紹了spring boot加載freemarker模板路徑的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11

