aoi.tsukasa 2021-02-18 21:40 采纳率: 75%
浏览 531
已结题

在mybatisplus中添加乐观锁后,自动填充更新时间失效

我在程序中加入乐观锁后,自动填充的更新时间失效了。如果更新时间初始为null,就会有自动填充。但是当数据中更新时间原先就有值的话,自动填充就是失效。这是为什么???  我用的mybatis-plus版本是3.4.2

测试程序:

@Test
public void testOptimisticLocker(){
    User user = userMapper.selectById(4L);
    user.setName("Lily");
    user.setEmail("12222222@qq.com");
    userMapper.updateById(user);
}

乐观锁组件:

// 注册乐观锁插件
@Bean
public MybatisPlusInterceptor MybatisPlusInterceptor() {
    MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
    mybatisPlusInterceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
    return mybatisPlusInterceptor;
}

填充策略:

// 更新时的填充策略
@Override
public void updateFill(MetaObject metaObject) {
    log.info("start update fill.....");
    //this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
    this.strictUpdateFill(metaObject,"updateTime",Date.class,new Date());
}
  • 写回答

2条回答 默认 最新

  • 编程爱好者熊浪 2021-02-19 09:32
    关注

    这根乐观锁没有关系吧,应该是你需要修改的字段本身有值,严格模式,有值的字段是不进行填充修改的,自己实现strictFillStrategy接口。

     

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月26日
  • 已采纳回答 11月18日