gpt4 book ai didi

java - @Version 和 @LastModifiedDate

转载 作者:行者123 更新时间:2023-12-02 11:20:54 26 4
gpt4 key购买 nike

人。我正在考虑避免 Spring 更新丢失的最简单方法。在 @Transactional 方法中,我正在更新持久对象。为了避免丢失更新的可能性,@LastModifiedDate 和 @Version 注释应该像这样处理它:

  @LastModifiedDate
@Version
private DateTime updateTime;

我认为这是实现我需要的一个捷径,但是你知道这些有什么缺点吗?他们会按预期工作吗?每一条信息都将不胜感激。谨致问候。

最佳答案

我认为没有任何缺点 - 它在 Spring 5.1.5 和 Spring Data JPA 2.1.5 上按我的预期工作。我也没有发现有人提示。

编辑 (10/07/2019)

我发现的唯一问题是,当您使用 Date 类型的字段作为时间戳时,它在 MySQL v5 中存储为 DATETIME 。 6(已在 MySQL v5.7 中修复)。 DATETIME 精度低至秒,因此如果您在同一秒内运行两个事务,则版本将不会更新,并且实体会达到我无法再更新的状态。

TLDR - 如果您计划将 @Version@LastModifiedDate 一起使用,请确保时间戳的存储精度至少为毫秒,并且它可能有限制如果您更频繁地访问它

关于java - @Version 和 @LastModifiedDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49923237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com