在一个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` 中的数据库操作因为异常被回滚。