事务的传播行为
一个事务方法a调用另一个事务方法b,必须指定事务应该如何传播,比如方法b可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。
事务传播的行为由传播属性指定。
7种传播属性
REQUIRED:当前方法就在这个事务内运行
REQUIRED_NEW:当前方法必须启动新事务,并将原事务挂起
…
事务传播属性可以在@Transactional注解的propagation属性中定义
示例:
买书,买两本,但钱只够一本。
方法a内,调用买书方法b,买两本,调用方法b两次。
若都在原事务内,则都买不成功。
若是每次调用买书方法b,都开启新事务,则可以买成功一本书。



