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

在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日

悬赏问题

  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块