自定义MetaObjectHandler
public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { User user = UserContext.getCurrentUser() ; this.setInsertFieldValByName("createdBy", user.getName(), metaObject); this.setInsertFieldValByName("createdDate", LocalDateTime.now(), metaObject); this.setInsertFieldValByName("lastModifiedBy", user.getName(), metaObject); this.setInsertFieldValByName("lastModifiedDate", LocalDateTime.now(), metaObject); } @Override public void updateFill(MetaObject metaObject) { User user = UserContext.getCurrentUser() ; this.setUpdateFieldValByName("lastModifiedBy", user.getName(), metaObject); this.setUpdateFieldValByName("lastModifiedDate", LocalDateTime.now(), metaObject); } }
配置MetaObjectHandler
@Configuration public class DatabaseConfiguration { @Bean public MetaObjectHandler metaObjectHandler() { return new MyMetaObjectHandler(); } }
实体类编写
@Data public class BaseEntity { @TableField(fill = FieldFill.INSERT) private String createdBy; @TableField(fill = FieldFill.INSERT) private LocalDateTime createdDate; @TableField(fill = FieldFill.UPDATE) private String lastModifiedBy; @TableField(fill = FieldFill.UPDATE) private LocalDateTime lastModifiedDate; }