weixin_44384275 2021-11-15 19:32 采纳率: 0%
浏览 74

MybatisPlus使用自动填充无效1111111

问题:
Springboot+Mybatis-plus项目,想使用Mybatis-plus的自动填充功能来补充创建时间、修改时间,但是我在插入数据的时候,发现该配置类并没有进入Spring容器,

//实体类也加上了注解并设置插入时填充
 @TableField(value = "create_time",fill = FieldFill.INSERT ) //插入的时候自动填充
    private Date createTime;

    /**
     * 数据修改时间
     */
    @TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) //插入和修改的时候自动填充
    private Date updateTime;

配置类


@Configuration
public class MybatisPlusConfig {

    // 最新版
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
        return interceptor;
    }

    @Bean
    public MetaObjectHandler metaObjectHandler(){
        return new MetaObjectHandler() {
            @Override
            public void insertFill(MetaObject metaObject) {
                this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
                this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); // 起始版本 3.3.0(推荐)
//                System.out.println("==============================进来了配置类");
                // 先获取到创建人的值,再进行判断,如果为空,就进行填充,如果不为空,就不做处理
                Object createBy = getFieldValByName("createBy", metaObject);
                if (createBy == null){
                    setFieldValByName("createBy","system",metaObject);
                }

                //先获取到操作人的值,再进行判断,如果为空,就进行填充,如果不为空,就不做处理
                Object updateBy = getFieldValByName("updateBy", metaObject);
                if (updateBy == null){
                    setFieldValByName("updateBy","system",metaObject);
                }
            }

            @Override
            public void updateFill(MetaObject metaObject) {
                this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
                Object updateBy = getFieldValByName("updateBy", metaObject);
                if (updateBy == null){
                    setFieldValByName("updateBy","system",metaObject);
                }
            }
        };
    }
}
  • 写回答

1条回答 默认 最新

  • I'Msohs 2021-11-16 11:07
    关注

    你这个配置类有没有被springboot扫描到

    评论

报告相同问题?

问题事件

  • 创建了问题 11月15日