<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之旅 廣告
                # 10.7\. 自動狀態檢測 Hibernate的用戶曾要求一個既可自動分配新持久化標識(identifier)保存瞬時(transient)對象,又可更新/重新關聯脫管(detached)實例的通用方法。 `saveOrUpdate()`方法實現了這個功能。 ``` // in the first session Cat cat = (Cat) firstSession.load(Cat.class, catID); // in a higher tier of the application Cat mate = new Cat(); cat.setMate(mate); // later, in a new session secondSession.saveOrUpdate(cat); // update existing state (cat has a non-null id) secondSession.saveOrUpdate(mate); // save the new instance (mate has a null id) ``` `saveOrUpdate()`用途和語義可能會使新用戶感到迷惑。 首先,只要你沒有嘗試在某個session中使用來自另一session的實例,你就應該不需要使用`update()`, `saveOrUpdate()`,或`merge()`。有些程序從來不用這些方法。 通常下面的場景會使用`update()`或`saveOrUpdate()`: * 程序在第一個session中加載對象 * 該對象被傳遞到表現層 * 對象發生了一些改動 * 該對象被返回到業務邏輯層 * 程序調用第二個session的`update()`方法持久這些改動 `saveOrUpdate()`做下面的事: * 如果對象已經在本session中持久化了,不做任何事 * 如果另一個與本session關聯的對象擁有相同的持久化標識(identifier),拋出一個異常 * 如果對象沒有持久化標識(identifier)屬性,對其調用`save()` * 如果對象的持久標識(identifier)表明其是一個新實例化的對象,對其調用`save()` * 如果對象是附帶版本信息的(通過`&lt;version&gt;`或`&lt;timestamp&gt;`) 并且版本屬性的值表明其是一個新實例化的對象,`save()`它。 * 否則`update()` 這個對象 `merge()`可非常不同: * 如果session中存在相同持久化標識(identifier)的實例,用用戶給出的對象的狀態覆蓋舊有的持久實例 * 如果session沒有相應的持久實例,則嘗試從數據庫中加載,或創建新的持久化實例 * 最后返回該持久實例 * 用戶給出的這個對象沒有被關聯到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>

                              哎呀哎呀视频在线观看