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,可能含有特殊的函數(shù)或者復(fù)雜的語法,因而不被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("此處應(yīng)有很酷炫的SQL")
void selectDemo();
官方對于此注解的解釋是:
租戶注解,支持method上以及mapper接口上,默認值為false;
- true 表示過濾SQL解析,即不會進入ISqlParser解析鏈;
- false 會進解析鏈并追加例如tenant_id等條件。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
jquery對輸入框內(nèi)容的數(shù)字校驗代碼實例
這篇文章主要介紹了jquery對輸入框內(nèi)容的數(shù)字校驗代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09
Springboot新建項目Spring Initializr Error問題及解決
這篇文章主要介紹了Springboot新建項目Spring Initializr Error問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Mac使用Idea配置傳統(tǒng)SSM項目(非maven項目)
本文主要介紹了Mac使用Idea配置傳統(tǒng)SSM項目(非maven項目),將展示如何設(shè)置項目結(jié)構(gòu)、添加依賴關(guān)系等,具有一定的參考價值,感興趣的可以了解一下2024-01-01
基于SpringBoot2的Shiro最簡配置操作(兩個文件)
這篇文章主要介紹了基于SpringBoot2的Shiro最簡配置操作(兩個文件),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
Java使用x-www-form-urlencoded發(fā)請求方式
在開發(fā)中經(jīng)常使用JSON格式,但遇到x-www-form-urlencoded格式時,可以通過重新封裝處理,POSTMan和APIpost工具中對此編碼的稱呼不同,分別是x-www-form-urlencoded和urlencoded,分享這些經(jīng)驗希望對他人有所幫助2024-09-09
springboot數(shù)據(jù)訪問和數(shù)據(jù)視圖的使用方式詳解
這篇文章主要為大家介紹了springboot數(shù)據(jù)訪問和數(shù)據(jù)視圖的使用方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06

