<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

    主站蜘蛛池模板: 亚洲日韩涩涩成人午夜私人影院| 暖暖在线日本免费中文| 亚洲精品国精品久久99热| 极品色天使在线婷婷天堂亚洲| 99视频在线观看免费| 亚洲无线一二三四区手机| 国产免费人成视频在线播放播| MM131亚洲国产美女久久| 两性色午夜视频免费网| 久久精品国产亚洲沈樵| 亚洲免费视频观看| 亚洲国产婷婷香蕉久久久久久| 七次郎成人免费线路视频| 国产亚洲自拍一区| 亚洲精品日韩一区二区小说| 成人免费视频国产| 一区二区视频免费观看| 亚洲AV无一区二区三区久久| 免费国产va在线观看| 18禁成年无码免费网站无遮挡| 人人狠狠综合久久亚洲| 亚洲国产成人精品女人久久久| 亚洲性69影院在线观看| 午夜色a大片在线观看免费| 日日摸夜夜添夜夜免费视频| 成年人网站在线免费观看| 亚洲伦理一区二区| 欧洲一级毛片免费| 国产精品无码亚洲精品2021| 亚洲片国产一区一级在线观看| 久久青草91免费观看| 亚洲日本一区二区三区在线不卡| 免费无码又爽又刺激一高潮| 亚洲人成无码久久电影网站| 久久久高清日本道免费观看| 亚洲乱码在线观看| 午夜福利不卡片在线播放免费| 亚洲国产成人AV网站| 亚洲AV人人澡人人爽人人夜夜| 性感美女视频在线观看免费精品 | 国产精品亚洲色婷婷99久久精品|