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

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

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

    隨筆 - 63  文章 - 0  trackbacks - 0
    <2009年4月>
    2930311234
    567891011
    12131415161718
    19202122232425
    262728293012
    3456789

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    (轉)Hibernate支持兩種鎖機制:
    即通常所說的“悲觀鎖(Pessimistic Locking)”和
    “樂觀鎖(OptimisticLocking)”。
    悲觀鎖的實現,往往依靠數據庫提供的鎖機制(也只有數據庫層提供的鎖機制才能真正保證數據訪問的排他性,否則,即使在本系統中實現了加鎖機制,也無法保證外部系統不會修改數據)。
    Hibernate的加鎖模式有:
    Ø LockMode.NONE : 無鎖機制。
    Ø LockMode.WRITE :Hibernate在Insert和Update記錄的時候會自動
    獲取。
    Ø LockMode.READ : Hibernate在讀取記錄的時候會自動獲取。
    以上這三種鎖機制一般由Hibernate內部使用,如Hibernate為了保證Update
    過程中對象不會被外界修改,會在save方法實現中自動為目標對象加上WRITE鎖。
    Ø LockMode.UPGRADE :利用數據庫的for update子句加鎖。
    Ø LockMode. UPGRADE_NOWAIT :Oracle的特定實現,利用Oracle的for
    update nowait子句實現加鎖。
    樂觀鎖,大多是基于數據版本(Version)記錄機制實現。何謂數據版本?即為數據增加一個版本標識,在基于數據庫表的版本解決方案中,一般是通過為數據庫表增加一個“version”字段來實現。讀取出數據時,將此版本號一同讀出,之后更新時,對此版本號加一。此時,將提交數據的版本數據與數據庫表對應記錄的當前版本信息進行比對,如果提交的數據版本號大于數據庫表當前版本號,則予以更新,否則認為是過期數據。
    悲觀鎖與樂觀鎖的比較:
    悲觀鎖大多數情況下依靠數據庫的鎖機制實現,以保證操作最大程度的獨占性。但隨之而來的就是數據庫性能的大量開銷,特別是對長事務而言,這樣的開銷往往無法承受;
    相對悲觀鎖而言,樂觀鎖機制采取了更加寬松的加鎖機制。樂觀鎖機制往往基于系統中的數據存儲邏輯,因此也具備一定的局限性,如在上例中,由于樂觀鎖機制是在我們的系統中實現,來自外部系統的更新操作不受我們系統的控制,因此可能會造成臟數據被更新到數據庫中。在
    系統設計階段,我們應該充分考慮到這些情況出現的可能性,并進行相應調整(如將樂觀鎖策略在數據庫存儲過程中實現,對外只開放基于此存儲過程的數據更新途徑,而不是將數據庫表直接對外公開)。
    Hibernate 在其數據訪問引擎中內置了樂觀鎖實現。如果不用考慮外部系統對數據庫的更新操作,利用Hibernate提供的透明化樂觀鎖實現,將大大提升我們的生產力。
    Hibernate中可以通過class描述符的optimistic-lock屬性結合version描述符指定。
    optimistic-lock屬性有如下可選取值:
    Ø none
    無樂觀鎖
    Ø version
    通過版本機制實現樂觀鎖
    Ø dirty
    通過檢查發生變動過的屬性實現樂觀鎖
    Ø all
    通過檢查所有屬性實現樂觀鎖
    其中通過version實現的樂觀鎖機制是Hibernate官方推薦的樂觀鎖實現,同時也是Hibernate中,目前唯一在數據對象脫離 Session發生修改的情況下依然有效的鎖機制。因此,一般情況下,我們都選擇version方式作為Hibernate樂觀鎖實現機制。
    posted on 2009-04-12 16:12 lanxin1020 閱讀(182) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 成年免费a级毛片免费看无码| 国产偷国产偷亚洲清高APP| 2022免费国产精品福利在线| 免费毛片在线播放| 亚洲制服丝袜在线播放| 国产又黄又爽又猛免费app| 337p日本欧洲亚洲大胆精品555588 | 国产情侣久久久久aⅴ免费| 亚洲精品无码AV人在线播放| aa在线免费观看| 久久亚洲AV无码精品色午夜麻| 久久国产乱子伦精品免费一| 久久夜色精品国产嚕嚕亚洲av| 一级毛片免费毛片一级毛片免费| 亚洲毛片在线观看| 亚洲免费综合色在线视频| 亚洲精品无码久久| www.亚洲一区| 国产日韩久久免费影院| 久久精品国产亚洲av麻豆| 亚洲免费在线视频观看| 亚洲欧美国产欧美色欲| 全黄性性激高免费视频| 国产成人自产拍免费视频| 亚洲日本中文字幕| 毛片免费在线观看网站| 老湿机一区午夜精品免费福利| 国产黄色一级毛片亚洲黄片大全| 嫩草在线视频www免费观看 | 情侣视频精品免费的国产| 一级毛片a免费播放王色电影 | 亚洲中文字幕一二三四区| 国产精品免费_区二区三区观看| 一级日本高清视频免费观看| 亚洲Av熟妇高潮30p| 在线a毛片免费视频观看| 中文字幕无线码中文字幕免费| 亚洲熟妇无码久久精品| 亚洲AⅤ无码一区二区三区在线 | 亚洲国产精品碰碰| 57pao国产成永久免费视频|