Spring为@Transactional提供的传播行为

12 浏览
0 Comments

Spring为@Transactional提供的传播行为

在SomeHelper类的任何方法中发生异常时(具有传播行为设置为'requires_new'的事务块),为什么它不在调用者类(具有默认传播行为的事务块)中处理?我得到的消息是"caught inside callServiceMethod of Controller class",而不是"caught inside doOperationOnMetadata of Impl class"。

0
0 Comments

Spring提供了@transactional注解来处理事务的传播行为。如果底层方法出现异常,外部方法是否会发生事务回滚的问题,使用Propagation.REQUIRES_NEW的传播行为,答案是否定的,因为每个方法都会被视为一个独立的事务。

根据参考资料(propagation=Propagation.REQUIRED)https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/transaction.html#tx-propagation,可以了解更多关于事务传播行为的信息。

0