MyBatis-Plus自动填充功能失效导致原因

1:先检查 字段有没有加上注解  @TableField(fill = FieldFill.INSERT_UPDATE)

@TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

2:有没有实现   MetaObjectHandler   接口  ,并且加入到 Spring 容器中

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createdTime", Date.class, new Date());
        this.strictInsertFill(metaObject, "updatedTime", Date.class, new Date());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updatedTime", Date.class, new Date());
    }
}

 3: @Component 是否扫码注入进去

4: baseMapper.update(null,Wrappers.<Users>lambdaUpdate())  这样的写法是没有拦截到的,所以无效

xml 写的也无效

@update 注解也无效

        baseMapper.update(null, Wrappers.<Users>lambdaUpdate()
                .set(Users::getConcernType,2)
                .eq(Users::getId,userId));

应该改为 

        baseMapper.update(users, Wrappers.<Users>lambdaUpdate()
                .set(Users::getConcernType,2));
或者
        Users users = new Users();
        users.setId(userId);
        users.setConcernType(1);
        baseMapper.updateById(users);

这样可以拿到表相关信息,会执行我们的   MetaObjectHandler  实现接口

posted @ 2020-09-14 16:59  邱健  阅读(6791)  评论(0编辑  收藏  举报