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