亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MyBatisPlus報(bào)錯(cuò):Failed to process,please exclude the tableName or statementId問題

 更新時(shí)間:2024年08月05日 10:58:34   作者:達(dá)希_  
這篇文章主要介紹了MyBatisPlus報(bào)錯(cuò):Failed to process,please exclude the tableName or statementId問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

報(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ù)雜的語法,因而不被JSqlParser(SQL解析器)所支持(無法添加租戶id之類的字段),以致拋出了JSQLParserException。

該異常又被MyBatisPlus捕獲,并封裝成MybatisPlusException后拋出。

源碼:

com.baomidou.mybatisplus.core.parser.AbstractJsqlParser

異常解析圖

解決方法

Failed to process, please exclude the tableName or statementId

翻譯過來就是:

處理失敗,請(qǐng)將表名或者語句id進(jìn)行排除。

P.S. 提示的很具體,但讀起來容易懵,因?yàn)椴皇煜さ娜瞬⒉恢朗亲鈶鬷d出了問題

方法一:排除表名

在配置MyBatisPlus的TenantHandler時(shí)在doTableFilter方法中將該表過濾掉(也就是不處理這個(gè)表的租戶id字段)。

方法二:排除該語句

在自定義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)文章

最新評(píng)論