如何将一个方法跳出事务管理
注解@Transactional(propagation = Propagation.NOT_SUPPORTED)的属性Propagation
Propagation属性 | outMethod() | innerMethod |
---|---|---|
Propagation.MANDATORY | .抛出异常 | .在outMethod的Transaction中运行 |
Propagation.NEVER | .不在Transaction中运行 | .抛出异常 |
Propagation.NOT_SUPPORTED | .不在Transaction中运行 | .outMethod的Transaction暂停直至innerMethod执行完毕 |
Propagation.REQUIRED ( 默认值 ) | .新开一个Transaction并在其中运行 | .在outMethod的Transaction中运行 |
Propagation.REQUIRES_NEW | .新开一个Transaction并在其中运行 | .outMethod的Transaction暂停直至innerMethod中新开的Transaction执行完毕 |
Propagation.SUPPORTS | .不在Transaction中运行 | .在outMethod的Transaction中运行 |