读取已提交的隔离级别阻止

时间:2018-09-02 15:16:43

标签: java spring transactional isolation-level read-committed

我正在尝试理解和使用Spring事务隔离级别。我需要最大化我的应用程序的并发性,我只需要注意脏读。幻影阅读和其他情况确实不需要注意。因此决定将 Isolation.READ_COMMITTED 用于我的应用程序中最常用的事务方法之一。根据春季文件:

  

此级别仅禁止事务读取行中未提交的更改。

所以这是我所面临的情况,我认为与上面的陈述没什么不同。

criticalMethod(customeId):

  1. 从表1读取客户数据
  2. 做出决定
  3. 在表1中为该客户添加新行
  4. 进行一些长时间的处理.....

因此,当两个完全独立的客户c1和c2并行调用此方法时,如果c2的方法被调用,则c1在步骤4上。因此,我在第1步中对c2块的方法调用对于c1的util方法调用完成了。

我用Eclipse调试模拟了这种情况。我可以从表1的数据库侧查询客户c2的数据。根据上述spring的文档,不应阻塞我的第二个方法调用。

我想念什么吗?

这是我的技术栈:

  • Java:8
  • 春季:4.3.7
  • 数据库:SqlServer 2012
  • ORM:Mybatis 3.4.2
  • mybatis春季版本:1.3.1

0 个答案:

没有答案