侧边栏壁纸
博主头像
程彬彬博主等级

业精于勤 荒于嬉 行成于思 毁于随

  • 累计撰写 101 篇文章
  • 累计创建 26 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录

mybatis-plus自动填充功能

程彬彬
2020-04-13 / 0 评论 / 0 点赞 / 1,723 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-04-13,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

官网文档

https://mybatis.plus/guide/auto-fill-metainfo.html
image.png

对象添加注解

@TableField(fill = FieldFill.INSERT_UPDATE)

public enum FieldFill {
    /**
     * 默认不处理
     */
    DEFAULT,
    /**
     * 插入填充字段
     */
    INSERT,
    /**
     * 更新填充字段
     */
    UPDATE,
    /**
     * 插入和更新填充字段
     */
    INSERT_UPDATE
}
@Data
@TableName("discovery_page_config")
public class DiscoveryPageConfig implements Serializable {
    private static final long serialVersionUID = -1L;
    /**
     * 操作人id
     */
    @ApiModelProperty(value = "操作人id")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long operatorId;
}

自定义实现类 MyMetaObjectHandler

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        if (metaObject.hasSetter("operatorId")) {
            //添加默认的操作者
            this.setFieldValByName("operatorId", JwtUtil.getUserId(), metaObject);
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        if (metaObject.hasSetter("operatorId")) {
            this.setFieldValByName("operatorId", JwtUtil.getUserId(), metaObject);
        }
    }
}

配置填充处理器


@Bean(name = "masterSqlSessionFactory")
@Primary
public MybatisSqlSessionFactoryBean masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource){
    MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
    mybatisPlus.setDataSource(masterDataSource);
    GlobalConfig globalConfig  = new GlobalConfig();
    globalConfig.setMetaObjectHandler(new MyMetaObjectHandler());
    mybatisPlus.setGlobalConfig(globalConfig);
    return mybatisPlus;
}

0
广告 广告

评论区