场景1:测试@Transactional(readOnly = true)不能对数据库进行修改,代码测试如下:

1)接口定义如下:

Spring 事务测试

2)调用执行结果如下:

Spring 事务测试

3)界面调用报错如下:

Spring 事务测试

 

场景测试2:Propagation.REQUIRES_NEW 新事物不起作用

1)代码实现如下:

Spring 事务测试

2)测试结果:

Spring 事务测试

Spring 事务测试

原因是:有事务的方法handleInsertData调用另外一个事务类型为REQUIRES_NEW的方法,按照常理来说,B表应该会插入数据,但是因为2个方法都写在同一个类中,且insertB方法是dao层mapper的方法,spring只能理解为同一个事务。如果insertB方法中调用的是另外一个service的方法而不是dao 层mapper方法,则REQUIRES_NEW新事务生效

相关文章:

  • 2021-06-26
  • 2021-05-31
  • 2022-02-19
  • 2022-01-13
  • 2021-11-19
  • 2022-12-23
  • 2022-01-25
  • 2021-06-19
猜你喜欢
  • 2021-09-02
  • 2022-12-23
  • 2021-04-14
  • 2022-12-23
  • 2021-10-09
  • 2021-05-14
  • 2021-11-07
相关资源
相似解决方案