Spring JPA与Hibernate如何管理并发更新

问题描述

我正在尝试编写一个可以双活运行的应用程序,两个实例都使用相同的数据库。我担心在更新实体(调用repo.findById(),entity.setX(),repo.save(entity))时存在潜在的竞争条件,如果发现之间存在足够大的延迟,则更新可能会相互覆盖并保存。

要对其进行测试,我制作了一种方法,该方法加载实体,等待10秒钟,然后向list属性添加一些内容并保存。打电话两次,我希望第二次保存会覆盖第一个,但是令人惊讶的是两个更新都得以保留。

这就是我想要的,我想知道是否有人知道弹簧为什么/为什么这样做,因为我想确保它每次都能做到?我知道它默认情况下使用乐观锁定,但是您需要@version批注(我没有)。如果更新来自单独的应用程序,还是仅因为两个更新都来自同一应用程序,这才行吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...