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
- springboot~jpa審計欄位的自動填充Spring Boot
- 如何自動填充SQL語句中的公共欄位SQL
- MyBatis-Plus-實用的功能自動填充欄位MyBatis
- 【mybatis-plus】主鍵id生成、欄位自動填充MyBatis
- 【EF Core】自動生成的欄位值
- Mybatis plus通用欄位自動填充的最佳實踐總結MyBatis
- Laravel Tips:指定自增欄位起始值Laravel
- MybatisPlus經典示例:使用Wrapper查詢指定欄位並新增欄位函式處理MyBatisAPP函式
- 【Mongo】mongo更新欄位為另一欄位的值Go
- ThinkPHP3.2.3 欄位對映/自動驗證/自動完成PHP
- 給mybatis新增自動建表,自動加欄位的功能MyBatis
- 介面自動化測試,一鍵快速校驗介面返回值全部欄位
- 在 Laravel 中自動維護 slug 欄位Laravel
- 介面自動化全量欄位校驗
- Spring AOP 實現《自動自動填充Entity》Spring
- Drupal 如何得到欄位的值?
- mongodb 取欄位最大值MongoDB
- 欄位管理,為什麼只有新增的時候才自動匹配欄位型別型別
- 缺失值填充
- arcgis欄位值計算(擷取A欄位前8位+按照順序計算8位)
- Cache-Control欄位值詳解
- oracle增加欄位帶預設值Oracle
- sql設定欄位預設值SQL
- 查詢oracle欄位預設值Oracle
- mysqldump 欄位值帶單引號MySql
- Dynamics CRM使用計算欄位自動計算兩個時間欄位的天數差
- android 8.0 Autofill Framework (自動填充框架)AndroidFramework框架
- Oracle-批量修改欄位裡面的值Oracle
- 如何使用odoo的compute方法,自動計算odoo欄位Odoo
- 怎麼給模型中的欄位增加自動完成規則模型
- 織夢多行文字自定義欄位 支援自動換行
- 自動填充被拆分的單元格
- 禁用 element 中v-input 自動填充
- jpa~為欄位新增insert的預設值
- BeanUtils.copyProperties 選擇性賦值欄位Bean賦值