mybatisPlus實(shí)現(xiàn)邏輯刪除,自動生成創(chuàng)建時間和更新時間方式
mybatisPlus邏輯刪除,自動生成創(chuàng)建時間和更新時間
下面是一個抽象類,由于這3個屬性每個表都要用到,所以用一個抽象類寫好屬性,被實(shí)體類繼承
@TableField(fill = FieldFill.INSERT)中fill表示填充字段的方式。
FieldFill枚舉類中有三個值
FieldFill.DEFAULT:默認(rèn)不做任何填充;FieldFill.INSERT:插入時填充字段;FieldFill.UPDATE:更新時填充字段。
在這里我只用到了插入和更新
@TableLogic是用于標(biāo)識邏輯刪除的字段。
在刪除時,不會真正刪除數(shù)據(jù)庫表中的數(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)建時間 (執(zhí)行MP的自動FILL操作,當(dāng)增加記錄的時候)
@TableField(fill = FieldFill.INSERT)
private Date createTime;
// 圖書修改時間
@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 //自定義一個MetaObjectHandler的實(shí)現(xiàn)類,注入到容器中,就會被MP自動識別,并使用
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ù)庫中的字段屬性
logic-delete-value:表示已刪除的值logic-not-delete-value:表示存在的值
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式
這篇文章主要介紹了spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12
SpringBoot實(shí)現(xiàn)發(fā)送QQ郵件的示例代碼
這篇文章主要介紹了SpringBoot如何實(shí)現(xiàn)發(fā)送QQ郵件功能,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
Windows環(huán)境使用bat腳本啟動Java服務(wù)的過程
Java項(xiàng)目一般會被打包成jar后啟動,在windows系統(tǒng)中可以通過終端窗口cmd啟動jar包,即在jar包所在的目錄中打開cmd,或在cmd中進(jìn)入到j(luò)ar包目錄,這篇文章主要介紹了Windows環(huán)境使用bat腳本啟動Java服務(wù),需要的朋友可以參考下2023-08-08

