事务传播机制
2020-06-11 14:05:42 17 举报
AI智能生成
事务的传播机制
作者其他创作
大纲/内容
PROPAGATION_REQUIRED
有则一起、无则自行处理
外层方法事务存在
内层方法加入外层事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
因为内外层方法处于同一事务内
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
因为内外层方法处于同一事务内
外层方法回滚
外层方法事务不存在
内层方法新建事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
PROPAGATION_REQUES_NEW
完全靠自己
外层方法事务存在
挂起外层事务,内层方法新建事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法事务不存在
内层方法新建事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
PROPAGATION_SUPPORT
完全靠外部
外层方法事务存在
内层方法加入外层事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
因为内外层属于同一事物
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
因为内外层属于同一事物
外层方法回滚
外层方法事务不存在
内层方法无事务执行
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
PROPAGATION_NOT_SUPPORT
完全无事务
外层方法事务存在
内层方法挂起外层事务、无事务执行
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法事务不存在
内层方法无事务执行
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
PROPAGATION_NEVER
我自己没有,也不让你有
外部方法事务存在
抛异常
org.springframework.transaction.IllegalTransactionStateException: Existing transaction found for transaction marked with propagation 'never'
外部方法事务不存在
内层方法无事务执行
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
PROPAGATION_MANDATORY
你必须有,没有不行
外部方法事务存在
内层方法加入外层事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
因为内外层属于同一事物
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
因为内外层属于同一事物
外层方法回滚
外部方法事务不存在
抛异常
org.springframework.transaction.IllegalTransactionStateException: No existing transaction found for transaction marked with propagation 'mandatory'
PROPAGATION_NESTED
回滚点记录
外层方法事务存在
内层方法加入外层事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
内外层方法虽处于同一事务,但内层事务的回滚点到内层方法就结束了
无catch
内层方法回滚
外层方法回滚
内外层方法虽处于同一事务,但内层事务的回滚点到内层方法就结束了
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
因为内外层方法处于同一事务内
外层方法回滚
外层方法事务不存在
内层方法新建事务
内层方法异常
在内层方法内catch
内层方法回滚
外层方法回滚
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
外层方法异常
在外层方法内catch
内层方法回滚
外层方法回滚
无catch
内层方法回滚
外层方法回滚
0 条评论
下一页