<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 八種事務類型及事務傳播機制 * 八種事務類型 | 事務類型 | 說明 | | --- | --- | | PROPAGATION_REQUIRED | 表示如果當前事務存在,則支持當前事務。否則,會啟動一個新的事務。xorm中默認事務類型。 | | PROPAGATION_SUPPORTS | 表示如果當前事務存在,則支持當前事務,如果當前沒有事務,就以非事務方式執行。 | | PROPAGATION_MANDATORY | 表示如果當前事務存在,則支持當前事務,如果當前沒有事務,則返回事務嵌套錯誤。 | | PROPAGATION_REQUIRES_NEW | 表示新建一個全新Session開啟一個全新事務,如果當前存在事務,則把當前事務掛起。 | | PROPAGATION_NOT_SUPPORTED | 表示以非事務方式執行操作,如果當前存在事務,則新建一個Session以非事務方式執行操作,把當前事務掛起。 | | PROPAGATION_NEVER | 表示以非事務方式執行操作,如果當前存在事務,則返回事務嵌套錯誤。 | | PROPAGATION_NESTED | 表示如果當前事務存在,則在嵌套事務內執行,如嵌套事務回滾,則只會在嵌套事務內回滾,不會影響當前事務。如果當前沒有事務,則進行與PROPAGATION_REQUIRED類似的操作。 | | PROPAGATION_NOT_REQUIRED | 表示如果當前沒有事務,就新建一個事務,否則返回錯誤。 | * 事務傳播機制 <b>1. PROPAGATION_REQUIRED </b> PROPAGATION_REQUIRED類型的事務,如果當前Session中如果已經開啟了數據庫事務,并且有程序在控制這個事務。那么在處理 REQUIRED 行為時將會忽略 commit/rollback 操作,這是加入已有事務的特征。當前Session中如果沒有事務那么會開啟新一個新事務。 | 時間| 事務1 | 事務2| | --- | --- |--- | |T1| 開始事務| | |T2| 操作1... | | |T3| |加入事務1| |T4 | |操作2...| |T5 |操作3...| | |T6 |遞交事務| | 說明: 事務1是當前Session中存在的事務,事務2是們我們新建的PROPAGATION_REQUIRED類型的事務 <b>2.PROPAGATION_SUPPORTS </b> ROPAGATION_SUPPORTS類型的事務和PROPAGATION_REQUIRED類型的事務的區別在于,當前Session中如果沒有事務那么PROPAGATION_SUPPORTS類型的事務會以非事務方式執行。 <b>3. PROPAGATION_MANDATORY</b> PROPAGATION_MANDATORY類型的事務和PROPAGATION_REQUIRED類型的事務的區別在于,當前Session中如果沒有事務那么PROPAGATION_MANDATORY類型的事務在開啟時會返回事務嵌套錯誤。 <b>4. PROPAGATION_REQUIRES_NEW</b> PROPAGATION_REQUIRES_NEW類型的事務強調事務獨立性。它保證了每個事務狀態管理范圍內鎖使用的數據庫連接是彼此不一樣的。例如獨立事務會滿足,事務1中存在事務2,當事務2遞交的時候不影響事務1。兩個事務之間不存在相互關聯關系。開啟事務2時,事務1會掛起,等事務2提交完成后,會恢復事務1,繼續執行。當前Session中如果沒有事務那么會開啟新一個新事務。 | 時間| 事務1 | 事務2| | --- | --- |--- | |T1| 開始事務| | |T2| 操作1... | | |T3| |掛起事務1| |T4| |開始事務| |T5 | |操作2...| |T6 | |遞交事務| |T7 | |恢復事務1| |T8 |操作3...| | |T9 |遞交事務| | 說明: 事務1是當前Session中存在的事務,事務2是們我們新建的PROPAGATION_REQUIRES_NEW類型的事務。事務1和事務2存在于不同Session中,事務執行結束后,請注意在適當的位置關閉事務所存在的Session。 <b>5. PROPAGATION_NOT_SUPPORTED</b> PROPAGATION_NOT_SUPPORTED類型的事務與PROPAGATION_REQUIRES_NEW類型事務的區別在于,PROPAGATION_NOT_SUPPORTED類型的事務在掛起當前Session中已經開啟了的數據庫事務之后不會在嘗試開啟新的事務。 | 時間| 事務1 (開啟事務)| 事務2(非事務)| | --- | --- |--- | |T1| 開始事務| | |T2| 操作1... | | |T3| |掛起事務1| |T4 | |操作2...| |T4 | |操作3...| |T5 | |恢復事務1| |T6 |操作4...| | |T7 |遞交事務| | 說明:事務1和事務2存在于不同Session中,事務執行結束后,請注意在適當的位置關閉事務所存在的Session。 <b>6. PROPAGATION_NEVER</b> PROPAGATION_NEVER類型的事務,強調了非事務。一旦發現當前Session中已存在的事務,則返回事務嵌套錯誤。 <b>7. PROPAGATION_NESTED</b> PROPAGATION_NESTED類型的事務,如果當前Session中存在的事務,則運行開啟一個嵌套的事務,創建一個回滾的保存點。如果當前Session沒有活動事務,則創建一個新事務。內部事務的回滾不會對外部事務造成影響。如外部事務回滾,則內部嵌套事務一起回滾。 | 時間| 事務1 | 事務2| | --- | --- |--- | |T1| 開始事務| | |T2| 操作1... | | |T3| |創建事務保存點| |T4 | |操作2...| |T5 | |遞交/回滾保存點| |T6 |操作3...| | |T7 |遞交事務| | <b>8. PROPAGATION_NOT_REQUIRED</b> PROPAGATION_NOT_REQUIRED類型事務與PROPAGATION_REQUIRED的事務正好相反,如果當前Session中如果已經開啟了數據庫事務,則返回錯誤,否則,會啟動一個新的事務。 該類型可以保障創建的事務只會在嵌套事務層級中是頂層事務,否則則會返回錯誤。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看