============================= Spring整合MyBatis事务传播机制 ============================= 事务的传播机制可以理解为被调方法的内层事务与主调方法的外层事务之间的关系。 ____________ | | |--事务开启--| | | |主调方法 { | | 保存订单| | 被调方法|-- |} | | | | | |--事务结束--| | |____________| | | ____________ | | | | |--事务开启--| | | | | |被调方法 { |<- | 修改库存| |} | | | |--事务结束--| |____________| 为被调方法设置事务传播机制(Propagation): ___________________________________________________ | 事务传播机制 | 含义 | 无外层事务 | 有外层事务 | |--------------|----------|------------|------------| | REQUIRED | 需要事务 | 开启新事务 |加入外层事务| <-增删改常用 | REQUIRED_NEW |需要新事务| 开启新事务 | 开启新事务 | | SUPPORTS | 支持事务 | 非事务运行 |加入外层事务| <-查询常用 | NOT_SUPPORTED|不支持事务| 非事务运行 | 非事务运行 | | NEVER |强制无事务| 非事务运行 | 抛出异常 | | MANDATORY |强制有事务| 抛出异常 |加入外层事务| | NESTED | 嵌套事务 | 开启新事务 |嵌入外层事务| |______________|__________|____________|____________|