部分註解與樂觀鎖

@TableLogic表邏輯處理註解(邏輯刪除)

效果:在字段上加上這個註解再執行BaseMapper的刪除方法時,刪除方法會變成修改

例:

實體類:
      @TableLogic
      private Integer del;

service層:
      調用BaseMapper的deleteById(id);

執行是效果:

加@TableLogic的情況下

走 Update 表名 set 加註解的列=值 where del=值

不加@TableLogic的情況下

走 delete from 表名 where del=值

@TableLogic註解參數

value = “” 默認的原值

delval = “” 刪除後的值

@TableLogic(value=“原值”,delval=“改值”)
·····················································································
樂觀鎖使用
主要適用場景

意圖:

當要更新一條記錄的時候,希望這條記錄沒有被別人更新

樂觀鎖實現方式:

取出記錄時,獲取當前version
更新時,帶上這個version
執行更新時, set version = yourVersion+1 where version = yourVersion
如果version不對,就更新失敗

樂觀鎖配置需要2步 記得兩步
1.插件配置

spring xml

spring boot

@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
    return new OptimisticLockerInterceptor();
}

public class User {

@Version
private Integer version;

...

}    
特別說明: 僅支持int,Integer,long,Long,Date,Timestamp
例子sql:update tbl_user set name=‘update’,version=3 where id=100 and version=2;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章