mybatisplus欄位值自動填充
1.在需要自動填充的欄位上新增相關注解
1.在新增時自動填充
@TableField(fill = FieldFill.INSERT) private Date createdTime;
2.在修改時自動填充
@TableField(fill = FieldFill.UPDATE) private Date updatedTime;
2.新增自動填充的配置類
說明:1.填充配置的欄位,要和實體類中保持一致
2.程式碼中getUserId()方法是從Security框架中獲取登入人員的id,根據自己的框架修改
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.hn.renting.config.security.AdminUserDetails;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* 填充器
*
* @author nieqiurong 2018-08-10 22:59:23.
*/
@Slf4j
@Component
public class MpMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill ....");
this.strictInsertFill(metaObject, "createdTime", Date.class, new Date());
this.strictInsertFill(metaObject, "createdBy", String.class, getUserId());
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill ....");
this.strictUpdateFill(metaObject, "updatedTime", Date.class, new Date());
this.strictInsertFill(metaObject, "updatedBy", String.class, getUserId());
}
/**
* 獲取登入使用者id
* @return
*/
private String getUserId(){
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
AdminUserDetails userDetails = null;
try {
Object principal = authentication.getPrincipal();
userDetails = (AdminUserDetails)principal;
return userDetails.getUser().getId();
}catch (Exception e){
log.error(e.toString());
log.error(authentication.getPrincipal().toString());
}
return null;
}
}
相關文章
- 小書MybatisPlus第9篇-常用欄位預設值自動填充MyBatis
- mybatis自動填充多個表相同欄位的值MyBatis
- mybatis自動填充時間欄位MyBatis
- 如何自動填充SQL語句中的公共欄位SQL
- 【mybatis-plus】主鍵id生成、欄位自動填充MyBatis
- MyBatis-Plus-實用的功能自動填充欄位MyBatis
- springboot~jpa審計欄位的自動填充Spring Boot
- 【EF Core】自動生成的欄位值
- Mybatis plus通用欄位自動填充的最佳實踐總結MyBatis
- SpringBoot-Mybatis_Plus學習記錄之公共欄位自動填充Spring BootMyBatis
- Laravel Tips:指定自增欄位起始值Laravel
- MySQL多個timestamp欄位自動新增預設值的問題MySql
- ThinkPHP3.2.3 欄位對映/自動驗證/自動完成PHP
- 給mybatis新增自動建表,自動加欄位的功能MyBatis
- 【Mongo】mongo更新欄位為另一欄位的值Go
- MybatisPlus經典示例:使用Wrapper查詢指定欄位並新增欄位函式處理MyBatisAPP函式
- 介面自動化測試,一鍵快速校驗介面返回值全部欄位
- 介面自動化全量欄位校驗
- 在 Laravel 中自動維護 slug 欄位Laravel
- oracle 時間欄位自動更新問題Oracle
- mongodb 取欄位最大值MongoDB
- MySQL修改欄位預設值MySql
- Spring AOP 實現《自動自動填充Entity》Spring
- 缺失值填充
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- SQL Server中根據某個欄位,ID欄位自動增長的實現SQLServer
- 在PowerDesigner中自動生成sqlserver欄位備註SQLServer
- arcgis欄位值計算(擷取A欄位前8位+按照順序計算8位)
- oracle增加欄位帶預設值Oracle
- sql設定欄位預設值SQL
- mysqldump 欄位值帶單引號MySql
- 查詢oracle欄位預設值Oracle
- Dynamics CRM使用計算欄位自動計算兩個時間欄位的天數差
- SQL Server 自增欄位重置SQLServer
- SQL Server 中調整自增欄位的當前初始值zzSQLServer
- Oracle-批量修改欄位裡面的值Oracle
- 查詢某個欄位的不同值
- 禁用 element 中v-input 自動填充