事务-事务的传播级别
2020-05-21 本文已影响0人
夏_未至
事务传播级别
springboot中的配置
@Transactional(propagation = Propagation.REQUIRED)
默认级别 REQUIRED
- REQUIRED
使用当前事务,若无事务,则创建。 - SUPPORTS
使用当前事务,若无事务,则不创建。 - MANDATORY
使用当前事务,若无事务,则报错。 - REQUIRES_NEW
挂起当前事务,创建新的事务。 - NOT_SUPPORTED
若有事务,则挂起。 - NEVER
不允许有事务,否则报错 - NESTED
创建子事务
同一事务、新事务、子事务的区别
同一事务:无论何处异常,都回滚
新事务:父方法的异常不影响子方法
子事务:父方法回滚,子方法回滚;子方法回滚,父方法try catch可不回滚
同一事务中,父方法try catch子方法,会出现org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only 事务已回滚错误