情况
代码如下:
MyLog myLog = mongoTemplate.find(new Query(Criteria.where("code").is("1234")))
myLog.setRequestDate(new Date());
mongoTemplate.save(myLog);
详细报错如下:
exception ERROR org.springframework.dao.OptimisticLockingFailureException: Optimistic lock exception on saving entity
原因
save具有update的效果,但是如果实体启用了versionEntity功能, 更新数据时要求version大于库中的version。
但是直接提取出来的数据 有可能 别人也在并发修改,导致 我们 存库时的version小于 库中的version。
详情可参考 Mongo DB乐观锁之version在spring data中应用