mybatis-plus邏輯刪除deleted


項目中數據庫表設計原則用到了邏輯刪除:數據本身沒有被刪除,只是將deleted字段設置為1

mybatis-plus在邏輯刪除方面的設置如下:

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl//sql打印
  global-config:
    db-config:
      logic-delete-field: deleted//邏輯刪除
      logic-delete-value: 1
      logic-not-delete-value: 0

在實體中,相關的設置如下:

 /**
     * 邏輯刪除 1刪除 0 未刪除
     */
    @TableLogic
    private Integer deleted;

測試過,全局配置和在實體中加入@TableLogic注解,可以二選一,因為在實體中加入太麻煩,所以建議全局配置,實體中可以不寫注解,也可以達到邏輯刪除的效果

最后:關於deleted在數據庫的存儲問題,我一直存的類型是tinyint(1) ,這是對的,因為它的選值不是0就是1

今天在用代碼生成器的時候,發現生成的實體是Boolean類型的,查詢資料后的結論是,tinyint(1)對應Boolean

關鍵的問題是,我以為這個1是長度,其實不是,tinyint(1)理論上只能存儲0和1(實測實際上也可以存其他值),要存其他值可以設置為tinyint(4)

建議:以后將只存儲一個數字的字段設置為tinyint(4), 包括邏輯刪除,這樣在用代碼生成器時自動反射為Integer

最后結論:

1. 邏輯刪除用mybatis-plus的全局配置即可

2. 只存儲一個數字的字段設置為tinyint(4), 包括邏輯刪除deleted

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM