人民。我在想最简单的方法来避免春天丢失的更新。在@Transactional方法中,我正在更新持久对象。为了避免丢失的更新可能性,@LastModifiedDate和@Version注释应该处理以下内容:
@LastModifiedDate
@Version
private DateTime updateTime;我认为这是一个很短的方法来实现我的需要,但你知道这些缺点吗?他们能像预期那样工作吗?每一条信息都将受到极大的感谢。诚挚的问候。
发布于 2019-07-09 12:25:32
我不认为它有什么坏处--它能像我预期的那样使用Spring5.1.5和SpringDataJPA2.1.5。我也没发现有人在抱怨。
编辑(10/07/2019)
我发现的唯一问题是,当您使用Date类型的字段作为时间戳,并将其存储在MySQL v5.6中(已在MySQL V5.7中修复)时。DATETIME的精度下降到几秒钟,所以如果两个事务在同一秒钟内运行,那么版本就不会更新,实体就会处于我无法再更新的状态。
TLDR -如果您计划将@Version与@LastModifiedDate一起使用,请确保时间戳的存储精度至少为毫秒,如果您更频繁地访问时间戳,它可能会受到限制。
https://stackoverflow.com/questions/49923237
复制相似问题