代码拉取完成,页面将自动刷新
id | sidebar_position | title | description |
---|---|---|---|
propagation | 2 | 10.2 传播行为 | 使用 dbVisitor ORM 的事务传播行为。 |
简单的理解就是多个事务方法在同一个线程中相互调用时,事务如何在这些方法间传播。
| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|-----------------|-------------------|
| 00:01 | begin | | begin A |
| 00:02 | insert data1 | | |
| 00:03 | | begin | Do nothing |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | Do nothing |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | commit/rollback A |
:::info
| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|------------------|----------------------------------------|
| 00:01 | begin | | begin A |
| 00:02 | insert data1 | | |
| 00:03 | | begin | suspend A > new Connection B > begin B |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | commit/rollback B > resume A |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | commit/rollback A |
Savepoint
方式开启一个子事务。| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|-----------------|-----------------------------|
| 00:01 | begin | | begin A |
| 00:02 | insert data1 | | |
| 00:03 | | begin | Savepoint B |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | commit/rollback Savepoint B |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | commit/rollback A |
:::info SUPPORTS 行为是事务传播属性中最简单的一种行为,其行为本质上强调了 不作为 :::
| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|-----------------|-------------|
| 00:01 | begin | | ... |
| 00:02 | insert data1 | | |
| 00:03 | | begin | Do nothing |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | Do nothing |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | ... |
| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|---------------------|-------------------------|
| 00:01 | begin | | ... |
| 00:02 | insert data1 | | |
| 00:03 | | begin | if A exist > suspend A |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | if A suspend > resume A |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | ... |
| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|-----------------|------------------------------|
| 00:01 | begin | | ... |
| 00:02 | insert data1 | | |
| 00:03 | | begin | if A exist > throw Exception |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | Do nothing |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | ... |
| Time | Transaction A | Transaction B | Effect |
|-------|-----------------|-----------------|----------------------------------|
| 00:01 | begin | | ... |
| 00:02 | insert data1 | | |
| 00:03 | | begin | if A not exist > throw Exception |
| 00:04 | | insert data2 | |
| 00:05 | | commit/rollback | Do nothing |
| 00:06 | insert data3 | | |
| 00:07 | commit/rollback | | ... |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。