提问者:小点点

Hibernate二级缓存和RR事务隔离


如果两个事务(都在RR隔离级别)请求同一个二级缓存的项目,然后他们修改并存储这个项目。现在,为了读取那个项目,他们没有运行任何SQL因为它被缓存了;所以在这种情况下,他们真的会启动数据库事务吗?当他们提交更改时,他们会遇到丢失更新的问题吗?


共1个答案

匿名用户

从悲观的角度来看:

如果二级缓存被配置为参与事务,那么只有第一个获得写锁的人才能修改缓存的对象,然后将更改写入数据库。当第二个事务想要获得写锁时,它必须等到第一个事务结束并释放它。

使用乐观锁定,我想应该会发生并发修改异常(或类似的名称),并且第二个事务将重试操作。