Mybatis-plus 自动注入公共字段

Posted 写尽千帆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-plus 自动注入公共字段相关的知识,希望对你有一定的参考价值。

1.选对需要设置的公共字段进行分类时需要插入更新,还是修改更新,还是插入和修改都更新

 

 

 

2.创建拦截器

@Component
@Slf4j
public class StaffCenterMetaObjectHandler implements MetaObjectHandler {

@Override
public void insertFill(MetaObject metaObject) {
try {
        // 根据自己的业务获取参数信息
UserInfo userInfo = LoginUtils.getLoginUser().getUserInfo();
log.info("======插入拦截添加公共字段,对象信息为{}====", userInfo);
if (Objects.nonNull(userInfo)) {
this.setFieldValByName("createrId", userInfo.getId(), metaObject);
this.setFieldValByName("createrName", userInfo.getFullName(), metaObject);
this.setFieldValByName("updaterId", userInfo.getId(), metaObject);
this.setFieldValByName("updaterName", userInfo.getFullName(), metaObject);
}
} catch (Exception e) {
log.error("插入拦截发生异常====信息为{}", e.getMessage());
}
}

@Override
public void updateFill(MetaObject metaObject) {
try {

       
      // 根据自己的业务获取参数信息

UserInfo userInfo = LoginUtils.getLoginUser().getUserInfo();
log.info("======执行修改拦截添加公共字段,对象信息为{}====", userInfo);
if (Objects.nonNull(userInfo)) {
this.setFieldValByName("updaterId", userInfo.getId(), metaObject);
this.setFieldValByName("updaterName", userInfo.getFullName(), metaObject);
}
} catch (Exception e) {
log.error("修改拦截发生异常====信息为{}", e.getMessage());
}
}
}

以上是关于Mybatis-plus 自动注入公共字段的主要内容,如果未能解决你的问题,请参考以下文章

浅谈MyBatis-Plus学习之公共字段自动填充

Mybatis-plus 实体类继承关系 插入默认值

Mybatis-Plus的应用场景及注入SQL原理分析

MyBatis-Plus学习——字段自动填充

如何解决mybatis-plus调用update方法时,自动填充字段不生效问题

开发小知识-mybatis-plus自动填充与读写分离