<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Topquan's Blog

    分享價值----成就你我----我的博客----你的家

    hibernate事務處理和鎖

    事務處理:
    Hibernate本身并不具備事務管理能力。在事務管理層,Hibernate將其委托給底層的JDBC或者JTA,以實現事務的管理與調度。

    基于JDBC的事務:
    無疑是最簡單的實現方式,
    session = sessionFactory.openSession();
    Transaction tx = session.beginTransaction();
    tx.commit();

    基于JTA的事務管理:
    hibernate默認采用JDBC Transacion。可以通過配置文件指定采用JTA作為事務管理實現。
    <hibernate-configuration>
        <session-factory>
            ......
            <property name="hibernate.transaction.factory_class">
      org.hibernate.transaction.JTATransactionFactory
            </property>
        </session-factory>
    </hibernate-configuration>

    鎖(locking)
    支持兩種鎖:悲觀鎖和樂觀鎖

    悲觀鎖(Pessimistic locking):
    數據庫的實現
    select * from account where name='yyy' for update
    通過for update子句,這條語句鎖定所有符合條件的記錄,在本次事務提交之前,外界無法修改這些記錄。

    hibernate的實現,也是基于數據庫的鎖機制實現:
    加鎖一般通過以下方法實現:
    Criteria.setLockMode
    Query.setLockMode
    Session.lock

    hibernate的加鎖模式:
    LockMode.NONE:無鎖機制
    LockMode.WRITE:hibernate在Insert和update時,會自動獲取
    LockMode.READ:hibernate在讀取記錄的時候,會自動獲取
    以上3種,由hibernate內部使用。

    LockMode.UPGRADE:利用數據庫的for update子句加鎖
    LockMode.UPGRADE_NOWAIT:oracle特定實現,利用oracle的for update nowait子句實現加鎖。

    樂觀鎖(Optimistic locking):
    hibernate在其數據訪問引擎中內置了樂觀鎖實現。可以通過class描述符的optimistic-lock屬性結合version描述符指定。

    <hibernate-mapping>
        <class
            name="org.hibernate.sample.TUser"
            table="t_user"
            dynamic-update="true"
            dynamic-insert="true"
            optimistic-lock="version"
        >
         <id>......
         </id>
          <version
             column="version"
             name="version"
             type="java.lang.Integer"
          />
        </class>
    </hibernate-mapping>
    注意,version節點要在ID節點之后。
    這里,聲明了一個version屬性,用于存放用戶的版本信息,保存在T_User表的version字段中。

    posted on 2006-08-05 01:18 topquan 閱讀(2674) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 亚洲国产视频一区| 亚洲黄色免费电影| 香港一级毛片免费看| 四虎免费大片aⅴ入口| 日韩亚洲产在线观看| 成人毛片免费在线观看| 中文字幕在线观看亚洲日韩| 国产99视频精品免费观看7| 456亚洲人成影院在线观| 免费无码又爽又刺激毛片| 亚洲国产精品无码中文lv| 免费国产在线观看老王影院| 乱淫片免费影院观看| 亚洲精品色午夜无码专区日韩| 在线免费观看h片| 久久久久亚洲Av无码专| 国产1000部成人免费视频| 亚洲日韩久久综合中文字幕| 国产精品久久香蕉免费播放| 人禽伦免费交视频播放| 亚洲AV无码专区电影在线观看| 最近中文字幕大全中文字幕免费| 亚洲色大成网站www久久九| 亚洲AV无码成人精品区大在线| www一区二区www免费| 亚洲AV人无码综合在线观看 | 亚洲福利视频网站| 九九九精品成人免费视频| 特级毛片免费观看视频| 亚洲不卡av不卡一区二区| 一个人免费观看www视频在线| 亚洲Av永久无码精品一区二区| 国产亚洲精品不卡在线| 222www免费视频| 免费夜色污私人影院网站| 久久亚洲国产成人亚| 永久免费av无码网站大全| 色www永久免费网站| 国产成人精品日本亚洲专| 亚洲片国产一区一级在线观看| 最近免费中文字幕大全免费版视频 |