1.PROPAGATION_REQUIRED
两个方法A,B开启Transactional.REQUIRED,当A调用B时,判断当前线程已经有事务,就不会再创建,底层通过ThreadLocal进行保存
2.PROPAGATION_SUPPORTS
如果当前线程有事务,则会沿用该事务,如果没有则以无事务执行
3.PROPAGATION_MANDATORY
判断当前线程是否有事务,如果有事务则沿用上一个事务,如果直接访问该方法会抛出异常
应用场景:修改支付状态方法,增加积分方法
4.PROPAGATION_REQUIRED_NEW
如果当前线程存在事务,则会将上一个方法的事务挂起暂停休眠,总是开启一个新的事务
5.PROPAGATION_NOT_SUPPORTED
总是非事务执行,并挂起任何存在的事务
6.PROPAGATION_NEVER
总是非事务执行,如果存在一个活动事务则抛出异常
7.PROPAGATION_NESTED
如果线程中存在事务,则在该事务中嵌套一个事务,begin{begin{…}}
如果没有存在事务,则按REQUIRED