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

时间:2016-08-11 10:16:39

标签: hibernate concurrency distributed-computing

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

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

1 个答案:

答案 0 :(得分:1)

最常见的解决方案是使用optimistic locking。它归结为向您的实体添加version列,并使用@Version进行注释。

在每次提交之前,Hibernate将检查

version,如果数据库中的版本比正在保存的实体上的版本新,则会抛出异常。