MyBatis-Plus標簽@TableField之fill自動填充方式
更新時間:2022年06月17日 10:52:42 作者:weixin_46084802
這篇文章主要介紹了MyBatis-Plus標簽@TableField之fill自動填充方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
@TableField之fill自動填充
mybatis-plus中
TableField映射非主鍵字段,value映射字段名,exist表示是否為數(shù)據(jù)庫字段,select表示是否查詢該字段,fill表示是否自動填充
實體類
@Data
public class User {
@TableId(type = IdType.NONE)
private Long id;
private String userName;
private String passWord;
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}自動填充處理器
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}MyBatis-Plus自動填充
mybatis-plus 自動填充公共字段
直接上代碼
首先我們要實現(xiàn)mybatis-plus的MetaObjectHandler接口,代碼如下:
/**
?* @USER WSF
?* @DATE 2020/8/10 13:41
?**/
@SpringBootConfiguration
public class MetaObjectConfig implements MetaObjectHandler
{
? ? @Override
? ? public void insertFill(MetaObject metaObject) {
? ? ?? ?//拿到類是否有此字段
? ? ? ? boolean hasGetter = metaObject.hasGetter("createDate");
? ? ? ? if (hasGetter)
? ? ? ? {
? ? ? ? ? ? // this.strictInsertFill(metaObject,"字段名對應(yīng)你的實體類的字段名",String.class,"Value");
? ? ? ? ? ? this.strictInsertFill(metaObject,"createDate", LocalDateTime.class,LocalDateTime.now());
? ? ? ? }
? ? }
? ? @Override
? ? public void updateFill(MetaObject metaObject)
? ? {
? ? ? ? Object upDateTime = getFieldValByName("upDateTime", metaObject);
? ? ? ? if (upDateTime == null)
? ? ? ? {
? ? ? ? ? ? this.strictUpdateFill(metaObject,"upDate",LocalDateTime.class,LocalDateTime.now());
? ? ? ? }
? ? }
}實體類
@Data
@TableName("t_user")
public class User {
? ??
? ? @TableId(type = IdType.AUTO)
? ? private Integer id;
? ??
? ? @TableField("user_name")
? ? private String username;
? ??
? ? @TableField("pass_word")
? ? private String password;
? ? /**
? ? ?* 如果要實現(xiàn)自動填充則加上
? ? ?* fill = FieldFill.INSERT新增時自動填充
? ? ?* fill = fill = FieldFill.INSERT_UPDATE新增和修改都自動填充
? ? ?* fill = FieldFill.DEFAULT 刪除時自動填充
? ? ?*/
? ? @TableField(value = "crate_date",fill = FieldFill.INSERT)
? ? private LocalDateTime createDate; ?//新增時間 ?
? ??
? ? @TableField(value = "up_name",fill = FieldFill.UPDATE)
? ? private String upName; ?//更新人
? ??
? ? // ...................
}以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
mybatis-plus @select動態(tài)查詢方式
這篇文章主要介紹了mybatis-plus @select動態(tài)查詢方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
Java網(wǎng)絡(luò)編程之簡易聊天室的實現(xiàn)
這篇文章主要為大家詳細介紹了如何利用Java語言實現(xiàn)一個簡易聊天室功能,可以實現(xiàn)運行客戶端和連接服務(wù)器,文中的示例代碼講解詳細,需要的可以了解一下2022-10-10
解決idea中java出現(xiàn)無效的源發(fā)行版問題
這篇文章主要給大家介紹了關(guān)于解決idea中java出現(xiàn)無效的源發(fā)行版問題的相關(guān)資料,無效的源發(fā)行版是指IntelliJ IDEA無法正確識別和處理的源代碼版本,這可能是由于錯誤的配置、缺少依賴項、不兼容的插件或其他問題導致的,需要的朋友可以參考下2024-01-01

