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

在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接口。

     

    评论
    解决 3 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题