springboot事务传递机制有哪些
时间: 2023-04-04 17:04:41 浏览: 68
SpringBoot事务传递机制有三种:PROPAGATION_REQUIRED、PROPAGATION_REQUIRES_NEW、PROPAGATION_NESTED。其中PROPAGATION_REQUIRED表示如果当前没有事务,则新建一个事务;如果已经存在一个事务中,加入这个事务;PROPAGATION_REQUIRES_NEW表示如果当前没有事务,则新建一个事务;如果已经存在一个事务中,将当前事务挂起,新建一个事务;PROPAGATION_NESTED表示如果当前没有事务,则新建一个事务;如果已经存在一个事务中,将当前事务嵌套在父事务中执行。
相关问题
springboot的事务传播机制有哪些?
SpringBoot的事务传播机制包括:
1. REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。
2. SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式继续运行。
3. MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
4. REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则挂起该事务。
5. NOT_SUPPORTED:以非事务方式运行,如果当前存在事务,则挂起该事务。
6. NEVER:以非事务方式运行,如果当前存在事务,则抛出异常。
7. NESTED:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则创建一个新的事务。
springboot事务的注解有哪些
SpringBoot事务的注解有以下几种:
1. @Transactional:用于标记一个方法或类是事务性的,可以控制事务的提交或回滚。
2. @Transactional(propagation = Propagation.REQUIRED):设置事务的传播行为为REQUIRED,表示如果当前没有事务,就创建一个新的事务;如果已经存在一个事务中,就加入到这个事务中。
3. @Transactional(propagation = Propagation.REQUIRES_NEW):设置事务的传播行为为REQUIRES_NEW,表示如果当前已经存在一个事务,就将当前事务挂起,创建一个新的事务;如果当前没有事务,就创建一个新的事务。
4. @Transactional(propagation = Propagation.NESTED):设置事务的传播行为为NESTED,表示如果当前已经存在一个事务,就在这个事务的嵌套事务中执行;如果当前没有事务,就创建一个新的事务。
5. @Transactional(isolation = Isolation.READ_COMMITTED):设置事务的隔离级别为READ_COMMITTED,表示读取已经提交的数据,可以避免脏读。
6. @Transactional(timeout = 10):设置事务的超时时间为10秒,如果在10秒内事务没有完成,就会自动回滚。
7. @Transactional(noRollbackFor = RuntimeException.class):设置事务不回滚的异常类型为RuntimeException。