当前位置:   article > 正文

Mybatis-Plus自动装填配置_@tablefield(value = "create_time", fill = fieldfil

@tablefield(value = "create_time", fill = fieldfill.insert)

1.继承MetaObjectHandler

  1. @Component
  2. @Slf4j
  3. public class CustomMetaObjectHandler implements MetaObjectHandler {
  4. @Override
  5. public void insertFill(MetaObject metaObject) {
  6. this.strictInsertFill(metaObject, "createTime", DateUtils::getTime, String.class);
  7. this.strictInsertFill(metaObject, "updateTime", DateUtils::getTime, String.class);
  8. this.strictInsertFill(metaObject, "createUser",
  9. () -> Optional.ofNullable(CurrentUser.currentUser()).map(CasUser::getUserId).orElse(""), String.class);
  10. this.strictInsertFill(metaObject, "updateUser",
  11. () -> Optional.ofNullable(CurrentUser.currentUser()).map(CasUser::getUserId).orElse(""), String.class);
  12. }
  13. @Override
  14. public void updateFill(MetaObject metaObject) {
  15. // mp 默认有值不覆盖
  16. metaObject.setValue("updateTime", null);
  17. metaObject.setValue("updateUser", null);
  18. this.strictUpdateFill(metaObject, "updateTime", DateUtils::getTime, String.class);
  19. this.strictUpdateFill(metaObject, "updateUser",
  20. () -> Optional.ofNullable(CurrentUser.currentUser()).map(CasUser::getUserId).orElse(""), String.class);
  21. }
  22. }

2.字段上需要设置

  1. @Data
  2. @Accessors(chain = true)
  3. public class BaseLogicDelDO implements Serializable {
  4. private static final long serialVersionUID = -206906616465913477L;
  5. public static final String CREATE_USER = "CREATE_USER";
  6. public static final String UPDATE_TIME = "UPDATE_TIME";
  7. public static final String UPDATE_USER = "UPDATE_USER";
  8. @TableField("STATUS")
  9. private Status status;
  10. @TableLogic
  11. private Status delFlag;
  12. @TableField(value = CREATE_USER, fill = FieldFill.INSERT)
  13. private String createUser;
  14. @TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
  15. private String createTime;
  16. @TableField(value = UPDATE_USER, fill = FieldFill.INSERT_UPDATE)
  17. private String updateUser;
  18. @TableField(value = UPDATE_TIME, fill = FieldFill.INSERT_UPDATE)
  19. private String updateTime;
  20. }

实体表字段需要设置fill填充方式,这里updateTime和updateUser都会根据操作人新增或修改都会更新,注意Mybatis-Plus字段填充是针对空字段填充,更新时需要覆盖updateTime和updateUser需要先置空,再填充。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/407536
推荐阅读
相关标签
  

闽ICP备14008679号