Mybatis plus邏輯刪除注解@TableLogic的方法是什么,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
首先這個注解是苞米豆出品,也就是我們常說的mybatis升級版的東西。
簡單講一下這個注解的用法:我們在做數據庫設計的時候有時候哪怕是刪除也不會真的走物理刪除,畢竟這樣很多數據就不可恢復了,大多數時候很多刪除都是用邏輯刪除。
簡單來說物理刪除就是真的把這條數據從數據庫刪除了。
而邏輯刪除主要是把表中的某一個字段作為標識符,一般我們常用的會默認初始為0,當我們想要刪除這條數據的時候會把這個標識符改成1。這樣在我們的常識里這條記錄就被刪除了。并且任何的查詢都會添加這個條件,也就是要在代碼中保證查詢出來的數據是有效的。
剛剛已經說了這個注解是用于邏輯刪除的,代表一個標識符,既然是標識符肯定要有值了,比如我上面說的0表示存在,1表示刪除。但是不能排除有的設計就是不按照常理,比如1表示存在,2表示刪除。所以@TableLogic注解是可以設置默認值的。用法如下:
@TableLogic(value=“存在標識”,delval=“刪除標識”) private Integer del_flag;
如果不寫value和delval會默認存在標識是0.刪除標識是1.
這個注解的用處就比較簡單了,當我們在實體類中某一個字段添加了這個注解,就相當于告訴mp這個字段是個標識符。我們調用BaseMapper或者調用IService的所有增刪改查方法會受影響。
查詢的時候用條件構造器,不用再對這個字段進行判斷,會自動篩選出存在的值。這里需要注意拿我上面的demo舉例:哪怕我們傳條件del_flag = 1,也不會生效。簡單總結下:用mp條件構造器查詢出來的結果一定是邏輯存在的
修改的時候差不多,如果我們把實體對象的del_flag 賦值為1然后保存,也是保存不成功的。
刪除的時候我們如果不用這個注解,用mp的delete方法或者remove方法都是物理刪除。但是如果用了這個注解,那么所有的delete方法或者remove方法都是邏輯刪除,也就是將del_flag 改為1.
需要注意的是上面說的都只對mp的查詢有影響,我們用xml或者注釋的方式自己寫sql是不生效的!
看完上述內容,你們掌握Mybatis plus邏輯刪除注解@TableLogic的方法是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。