如果想看具体概念介绍,请参考 :https://blog.csdn.net/qq_32424381/article/details/123561275
类型 | 描述 | 类比 |
Required | 需要 如果存在一个事务,则支持当前事务。如果没有事务则开启 | A有车你开A的车送他回家,没有你就开自己的车送他回家 |
Supports | 支持 如果存在一个事务,支持当前事务。如果没有事务,则非事务的执行 | A有车你开A的车送他回家,没有你就步行送他回家 |
Mandatory | 必要的 如果已经存在一个事务,支持当前事务。如果没有一个活动的事务,则抛出异常。 | A有车你开A的车送他回家,没有你就不送 |
required_new | 总是开启一个新的事务。如果一个事务已经存在,则将这个存在的事务挂起。 | A有没有车你都开自己的车送他回家 |
Not_support | 总是非事务地执行,并挂起任何存在的事务。 | A有没有车你都步行送他回家 |
Never | 绝不 总是非事务地执行,如果存在一个活动事务,则抛出异常 | A没有车你步行送他回家,A有车你反而不送了 |
Nested | 嵌套的 如果有就嵌套、没有就开启事务 | A有车你就用A的车拖着你的车送A回家,A没有车你就开自己的车送A回家 |
A的情况 | 你的选择 | case |
A有车 | 开A的车送 | Required Case 1,Supports case 1,Mandatory case 1,Nested case 1(特殊) |
A有车 | 开自己的车送 | required_new case 1 |
A有车 | 步行送 | Not_support case 1 |
A有车 | 不送 | Never case 1 |
A没车 | 开A的车送 | |
A没车 | 开自己的车送 | required_new case 2,Required Case 2,Nested case 2 |
A没车 | 步行送 | Not_support case 2,Supports case 2,Never case 2 |
A没车 | 不送 | Mandatory case 2 |