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  實現接口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM