@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;