Hibernate二级缓存和RR事务隔离

时间:2012-04-05 14:07:10

标签: java hibernate second-level-cache transaction-isolation

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

1 个答案:

答案 0 :(得分:1)

从悲观的角度来看:

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

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