溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mybatis?plus邏輯刪除注解@TableLogic的方法是什么

發(fā)布時間:2022-01-27 13:28:11 來源:億速云 閱讀:546 作者:柒染 欄目:開發(fā)技術(shù)

Mybatis plus邏輯刪除注解@TableLogic的方法是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

首先這個注解是苞米豆出品,也就是我們常說的mybatis升級版的東西。

簡單講一下這個注解的用法:我們在做數(shù)據(jù)庫設(shè)計的時候有時候哪怕是刪除也不會真的走物理刪除,畢竟這樣很多數(shù)據(jù)就不可恢復(fù)了,大多數(shù)時候很多刪除都是用邏輯刪除。

物理刪除和邏輯刪除

簡單來說物理刪除就是真的把這條數(shù)據(jù)從數(shù)據(jù)庫刪除了。
而邏輯刪除主要是把表中的某一個字段作為標(biāo)識符,一般我們常用的會默認初始為0,當(dāng)我們想要刪除這條數(shù)據(jù)的時候會把這個標(biāo)識符改成1。這樣在我們的常識里這條記錄就被刪除了。并且任何的查詢都會添加這個條件,也就是要在代碼中保證查詢出來的數(shù)據(jù)是有效的。

@TableLogic注解

@TableLogic注解默認值:

剛剛已經(jīng)說了這個注解是用于邏輯刪除的,代表一個標(biāo)識符,既然是標(biāo)識符肯定要有值了,比如我上面說的0表示存在,1表示刪除。但是不能排除有的設(shè)計就是不按照常理,比如1表示存在,2表示刪除。所以@TableLogic注解是可以設(shè)置默認值的。用法如下:

@TableLogic(value=“存在標(biāo)識”,delval=“刪除標(biāo)識”)
private Integer del_flag;

如果不寫value和delval會默認存在標(biāo)識是0.刪除標(biāo)識是1.

@TableLogic注解用法

這個注解的用處就比較簡單了,當(dāng)我們在實體類中某一個字段添加了這個注解,就相當(dāng)于告訴mp這個字段是個標(biāo)識符。我們調(diào)用BaseMapper或者調(diào)用IService的所有增刪改查方法會受影響。

  • 查詢的時候用條件構(gòu)造器,不用再對這個字段進行判斷,會自動篩選出存在的值。這里需要注意拿我上面的demo舉例:哪怕我們傳條件del_flag = 1,也不會生效。簡單總結(jié)下:用mp條件構(gòu)造器查詢出來的結(jié)果一定是邏輯存在的

  • 修改的時候差不多,如果我們把實體對象的del_flag 賦值為1然后保存,也是保存不成功的。

  • 刪除的時候我們?nèi)绻挥眠@個注解,用mp的delete方法或者remove方法都是物理刪除。但是如果用了這個注解,那么所有的delete方法或者remove方法都是邏輯刪除,也就是將del_flag 改為1.

需要注意的是上面說的都只對mp的查詢有影響,我們用xml或者注釋的方式自己寫sql是不生效的!

看完上述內(nèi)容,你們掌握Mybatis plus邏輯刪除注解@TableLogic的方法是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI