首页 > 试题广场 >

在一个Spring应用中,`ServiceA` 的 `met

[单选题]
在一个Spring应用中,`ServiceA` 的 `methodA` 方法上使用了 `@Transactional(propagation = Propagation.REQUIRED)` 注解。`methodA` 内部调用了 `ServiceB` 的 `methodB` 方法,而 `methodB` 上使用了 `@Transactional(propagation = Propagation.REQUIRES_NEW)` 注解。假设两个方法都会执行数据库写操作,如果在 `methodB` 的业务逻辑执行过程中抛出了一个未被捕获的 `RuntimeException`,将会发生什么情况?
  • `methodB` 中的数据库操作被回滚,但 `methodA` 中的数据库操作被正常提交。
  • `methodA` 和 `methodB` 中的所有数据库操作都将被回滚。
  • 只有 `methodB` 中的数据库操作被回滚,`methodA` 的事务状态不受影响,并继续执行。
  • `methodB` 中的数据库操作被提交,而 `methodA` 中的数据库操作因为异常被回滚。
如果b捕获了是不是也会b回滚?但是这时候a就不回滚了
发表于 今天 17:25:13 回复(0)