spring事务传播行为的疑惑,同一个service不同方法
在一个service的两个方法配置不同的传播属性。比如:
doTest方法配置了Propagation.required事务传播属性,updateNotesByWoId配置了Propagation.NESTED事务传播属性。其中doTest调用了updateNotesByWoId方法。此时Propagation.NESTED失效了,updateNotesByWoId抛出异常后不会回滚到savepoint。而如果两个方法在不同service里面,那么此时Propagation.NESTED是有效的,updateNotesByWoId会会滚到savepoint。
求解为什么
doTest方法配置了Propagation.required事务传播属性,updateNotesByWoId配置了Propagation.NESTED事务传播属性。其中doTest调用了updateNotesByWoId方法。此时Propagation.NESTED失效了,updateNotesByWoId抛出异常后不会回滚到savepoint。而如果两个方法在不同service里面,那么此时Propagation.NESTED是有效的,updateNotesByWoId会会滚到savepoint。
求解为什么
...全文
相关推荐
Spring事务传播行为问题解决
Spring事务传播行为问题解决Spring事务传播行为问题解决是指在Spring框架中,事务传播行为的配置和使用问题。
Spring事务流程图
**事务传播行为**:Spring提供了七种事务传播行为,如REQUIRED(默认)、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER、NESTED
Spring异常捕获且回滚事务解决方案
我们可以通过配置 TransactionManager 来控制事务的行为。在 Spring 中,我们可以使用 @Transactional 注解来标记事务方法。
详解Spring Boot 事务的使用
在服务层(Service),我们通常在需要事务控制的方法上添加`@Transactional`注解。如果这个注解放在类级别,那么类中所有的方法都将默认在一个事务中执行。
spring事务Propagation及其实现原理详解
Spring事务Propagation及其实现原理详解在Spring框架中,事务Propagation(事务传播)是一种机制,用于控制事务的行为和传播方式。


