mybatisPlus實(shí)現(xiàn)邏輯刪除,自動(dòng)生成創(chuàng)建時(shí)間和更新時(shí)間方式
mybatisPlus邏輯刪除,自動(dòng)生成創(chuàng)建時(shí)間和更新時(shí)間
下面是一個(gè)抽象類,由于這3個(gè)屬性每個(gè)表都要用到,所以用一個(gè)抽象類寫好屬性,被實(shí)體類繼承
@TableField(fill = FieldFill.INSERT)
中fill表示填充字段的方式。
FieldFill枚舉類中有三個(gè)值
FieldFill.DEFAULT
:默認(rèn)不做任何填充;FieldFill.INSERT
:插入時(shí)填充字段;FieldFill.UPDATE
:更新時(shí)填充字段。
在這里我只用到了插入和更新
@TableLogic
是用于標(biāo)識(shí)邏輯刪除的字段。
在刪除時(shí),不會(huì)真正刪除數(shù)據(jù)庫(kù)表中的數(shù)據(jù),而是將其標(biāo)記為已刪除狀態(tài)。
package com.abc.booksys.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.Version; import java.util.Date; public abstract class ValueObject { // 圖書創(chuàng)建時(shí)間 (執(zhí)行MP的自動(dòng)FILL操作,當(dāng)增加記錄的時(shí)候) @TableField(fill = FieldFill.INSERT) private Date createTime; // 圖書修改時(shí)間 @TableField(fill=FieldFill.INSERT_UPDATE) private Date updateTime; @TableLogic private int isDeleted; }
MyMetaObjectHandler.java
package com.abc.booksys.utils; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; @Slf4j @Component //自定義一個(gè)MetaObjectHandler的實(shí)現(xiàn)類,注入到容器中,就會(huì)被MP自動(dòng)識(shí)別,并使用 public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); metaObject.setValue("createTime", new Date()); metaObject.setValue("updateTime", new Date()); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); metaObject.setValue("updateTime", new Date()); } }
實(shí)體類
package com.abc.booksys.domain; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.NoArgsConstructor; import com.abc.booksys.domain.ValueObject; @Data @NoArgsConstructor @TableName("tbl_book") public class Book extends ValueObject{ @TableId("isbn") private String isbn; private String name; private double price; }
yml文件
#mybatis-plus配置 mybatis-plus: #邏輯刪除 global-config: db-config: logic-delete-field: is_deleted logic-delete-value: 1 logic-not-delete-value: 0
其中:
logic-delete-field用于綁定邏輯刪除的數(shù)據(jù)庫(kù)中的字段屬性
logic-delete-value
:表示已刪除的值logic-not-delete-value
:表示存在的值
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式
這篇文章主要介紹了spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)發(fā)送QQ郵件功能,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09HashMap和HashTable底層原理以及常見(jiàn)面試題
今天小編就為大家分享一篇關(guān)于HashMap和HashTable底層原理以及常見(jiàn)面試題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01Windows環(huán)境使用bat腳本啟動(dòng)Java服務(wù)的過(guò)程
Java項(xiàng)目一般會(huì)被打包成jar后啟動(dòng),在windows系統(tǒng)中可以通過(guò)終端窗口cmd啟動(dòng)jar包,即在jar包所在的目錄中打開cmd,或在cmd中進(jìn)入到j(luò)ar包目錄,這篇文章主要介紹了Windows環(huán)境使用bat腳本啟動(dòng)Java服務(wù),需要的朋友可以參考下2023-08-08