国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Mybatis plus邏輯刪除失敗的BUG操作

瀏覽:141日期:2023-10-21 09:59:04

開發(fā)調(diào)試的時候發(fā)現(xiàn)Mybatis Plus的邏輯刪除失效了,看了下配置文件發(fā)現(xiàn)沒有問題,通過查看以下源碼發(fā)現(xiàn)

Mybatis plus邏輯刪除失敗的BUG操作

邏輯刪除需要注入的bean,查看這個bean的源碼如下

Mybatis plus邏輯刪除失敗的BUG操作

查看其中一個實例的類的源碼,如通過ID邏輯刪除LogicDeleteById的源碼,如下

Mybatis plus邏輯刪除失敗的BUG操作

mp在項目啟動時預(yù)加載SQL是通過TableInfo中l(wèi)ogicDelete字段判斷是否開啟邏輯刪除的。然后讓我們來看看mp內(nèi)部是如何判斷是否開啟邏輯刪除的。

先看如下源碼

Mybatis plus邏輯刪除失敗的BUG操作

大概就是講實體類中的字段進行循環(huán)映射數(shù)據(jù)庫字段并封裝到TableFieldInfo類中,實體類信息封裝到TableInfo中,在讓我們來看看MP循環(huán)處理字段時候做了什么操作。

Mybatis plus邏輯刪除失敗的BUG操作

上圖中的這一行代碼,

Mybatis plus邏輯刪除失敗的BUG操作

讓我們看看這行代碼具體做了什么

Mybatis plus邏輯刪除失敗的BUG操作

現(xiàn)在已經(jīng)很明確了,mp通過判斷字段上是否有TableLogic注解來判斷該實體類映射的表是否開啟邏輯刪除。但這一步是放到實體類所有的字段列表的循環(huán)中的,當邏輯刪除字段在所有的字段中間而不是末尾的時候,判斷邏輯刪除的表示logicDelete會被覆蓋為false,然后導(dǎo)致解析方法生成聲明的時候判斷為沒有開啟邏輯刪除。

Mybatis plus邏輯刪除失敗的BUG操作

mp已經(jīng)更新了這個錯誤,在設(shè)置logicDelete時會先判斷原來的刪除標識是否為true,否則保持原來的初始值false。

補充知識:分布式 mybatis-plus 邏輯刪除不生效 升級后org.mybatis.logging.LoggerFactory報錯

解決方案:

第一步:升級mybatisplus版本到3.2.0

第二步:多添加一個擴展包

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.2.0</version> </dependency>

以上這篇Mybatis plus邏輯刪除失敗的BUG操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

相關(guān)文章:
主站蜘蛛池模板: 浦县| 甘南县| 方山县| 霍山县| 潼南县| 鲁山县| 南通市| 牡丹江市| 宁德市| 临泉县| 大理市| 青铜峡市| 赤水市| 乌拉特前旗| 巴塘县| 武冈市| 宁国市| 泾川县| 恩施市| 台东县| 卫辉市| 桦川县| 驻马店市| 乌兰浩特市| 浑源县| 沁阳市| 蒙自县| 千阳县| 大姚县| 湖州市| 青州市| 上栗县| 文成县| 娱乐| 措勤县| 江西省| 渑池县| 桃园县| 郑州市| 花莲市| 和田县|