休眠 - 多个服务器尝试更改相同的数据

Hibernate - multiple servers try to change same data

假设我们有一个分布式系统,服务器 A 和 B 尝试同时更新数据库中的相同数据。我们使用 Hibernate。

在这种情况下,Hibernate 将如何表现?我们应该有什么样的锁定机制?

最常见的解决方案是使用 optimistic locking。它归结为向您的实体添加一个 version 列,用 @Version.

注释

version Hibernate 会在每次提交前检查,如果数据库中的版本比被保存的实体上的版本新,则会抛出异常。