<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 11.4\. 悲觀鎖定(Pessimistic Locking) 用戶其實并不需要花很多精力去擔心鎖定策略的問題。通常情況下,只要為JDBC連接指定一下隔 離級別,然后讓數據庫去搞定一切就夠了。然而,高級用戶有時候希望進行一個排它的悲觀鎖定, 或者在一個新的事務啟動的時候,重新進行鎖定。 Hibernate總是使用數據庫的鎖定機制,從不在內存中鎖定對象! 類`LockMode` 定義了Hibernate所需的不同的鎖定級別。一個鎖定 可以通過以下的機制來設置: * 當Hibernate更新或者插入一行記錄的時候,鎖定級別自動設置為`LockMode.WRITE`。 * 當用戶顯式的使用數據庫支持的SQL格式`SELECT ... FOR UPDATE` 發送SQL的時候,鎖定級別設置為`LockMode.UPGRADE` * 當用戶顯式的使用Oracle數據庫的SQL語句`SELECT ... FOR UPDATE NOWAIT` 的時候,鎖定級別設置`LockMode.UPGRADE_NOWAIT` * 當Hibernate在“可重復讀”或者是“序列化”數據庫隔離級別下讀取數據的時候,鎖定模式 自動設置為`LockMode.READ`。這種模式也可以通過用戶顯式指定進行設置。 * `LockMode.NONE` 代表無需鎖定。在`Transaction`結束時, 所有的對象都切換到該模式上來。與session相關聯的對象通過調用`update()` 或者`saveOrUpdate()`脫離該模式。 "顯式的用戶指定"可以通過以下幾種方式之一來表示: * 調用 `Session.load()`的時候指定`鎖定模式(LockMode)`。 * 調用`Session.lock()`。 * 調用`Query.setLockMode()`。 如果在`UPGRADE`或者`UPGRADE_NOWAIT`鎖定模式下調 用`Session.load()`,并且要讀取的對象尚未被session載入過,那么對象 通過`SELECT ... FOR UPDATE`這樣的SQL語句被載入。如果為一個對象調用 `load()`方法時,該對象已經在另一個較少限制的鎖定模式下被載入了,那 么Hibernate就對該對象調用`lock()` 方法。 如果指定的鎖定模式是`READ`, `UPGRADE` 或 `UPGRADE_NOWAIT`,那么`Session.lock()`就 執行版本號檢查。(在`UPGRADE` 或者`UPGRADE_NOWAIT` 鎖定模式下,執行`SELECT ... FOR UPDATE`這樣的SQL語句。) 如果數據庫不支持用戶設置的鎖定模式,Hibernate將使用適當的替代模式(而不是扔出異常)。 這一點可以確保應用程序的可移植性。
                  <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>

                              哎呀哎呀视频在线观看