- 實體類
@Data // lombok依賴 public class User{ @TableField( fill = FieldFill.INSERT) private Integer isDelete; @TableField(fill = FieldFill.INSERT_UPDATE) private Date createTime; }
- 實現元對象處理器接口:
com.baomidou.mybatisplus.core.handlers.MetaObjectHandlermybatis
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推薦使用) this.fillStrategy(metaObject, "isDelete", 1); // 也能夠使用(3.3.0 該方法有bug請升級到以後的版本如`3.3.1.8-SNAPSHOT`) /* 上面選其一使用,下面的已過期(注意 strictInsertFill 有多個方法,詳細查看源碼) */ //this.setFieldValByName("operator", "Jerry", metaObject); //this.setInsertFieldValByName("operator", "Jerry", metaObject); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推薦使用) this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也能夠使用(3.3.0 該方法有bug請升級到以後的版本如`3.3.1.8-SNAPSHOT`) /* 上面選其一使用,下面的已過期(注意 strictUpdateFill 有多個方法,詳細查看源碼) */ //this.setFieldValByName("operator", "Tom", metaObject); //this.setUpdateFieldValByName("operator", "Tom", metaObject); } }
- TableField
public enum FieldFill { /** * 默認不處理 */ DEFAULT, /** * 插入填充字段 */ INSERT, /** * 更新填充字段 */ UPDATE, /** * 插入和更新填充字段 */ INSERT_UPDATE }