springboot 事务 使用 NOT_SUPPORTED
时间: 2024-05-24 07:06:17 浏览: 162
使用NOT_SUPPORTED事务传播行为,表示当前方法不应该在事务中运行。如果当前存在一个事务,那么这个事务会被挂起,当前方法在没有事务的环境下运行。如果当前没有事务,那么就不会开启一个事务来运行当前方法。使用NOT_SUPPORTED事务传播行为的方法,不会受到事务管理器的事务管理,因此不会回滚事务。
在Spring Boot中,我们可以通过在方法上添加@Transactional注解并将其属性设置为Propagation.NOT_SUPPORTED来使用NOT_SUPPORTED事务传播行为。例如:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void updateUser(User user) {
userMapper.updateUser(user);
}
}
```
相关问题
Springboot事务
Spring Boot是一个基于Spring框架的快速开发框架,它提供了很多便捷的功能,其中包括事务管理。Spring Boot的事务管理是基于Spring框架的事务管理机制实现的。Spring Boot中的事务管理主要包括事务传播机制、事务隔离级别、事务超时和只读事务等。其中,事务传播机制是指在多个事务嵌套的情况下,事务如何进行传播和管理。Spring Boot中默认的事务传播行为是REQUIRED,即如果业务方法执行时已经在一个事务中,则加入当前事务,否则重新开启一个事务。除此之外,Spring Boot还支持其他的事务传播行为,例如SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED和NEVER等。在使用Spring Boot进行开发时,我们可以通过在方法上添加@Transactional注解来实现事务管理。
springboot 事务传播
在 Boot中,事务传播行为是用来定义一个方法被调用时,事务如何在协作中传播的规则。Spring Boot提供了多种事务传播行为,包括REQUIRED、SUPPORTS、MANDATORY、REQUIRES_NEW、NOT_SUPPORTED、NEVER和NESTED等。其中,REQUIRED是默认的传播行为,表示当前方法需要在一个事务中执行,如果当前存在事务,就加入该事务,如果不存在事务,则创建一个新的事务。SUPPORTS表示当前方法可以在一个事务中执行,也可以在没有事务的情况下执行。MANDATORY表示当前方法必须在一个事务中执行,如果当前不存在事务,则抛出异常。REQUIRES_NEW表示当前方法需要在一个新的事务中执行,即使当前存在事务,也会挂起该事务。NOT_SUPPORTED表示当前方法不应该在一个事务中执行,如果当前存在事务,则挂起该事务。NEVER表示当前方法不应该在一个事务中执行,如果当前存在事务,则抛出异常。NESTED表示当前方法需要在一个嵌套的事务中执行。
阅读全文