隨筆-124  評(píng)論-49  文章-56  trackbacks-0

          悲觀鎖

          悲觀鎖的實(shí)現(xiàn),通常依賴于數(shù)據(jù)庫(kù)機(jī)制,在整個(gè)過(guò)程中將數(shù)據(jù)鎖定,其它任何用戶都不能讀取或修改
          session.load(Inventory.class, 1, LockMode.UPGRADE);

          樂(lè)觀鎖

          大多數(shù)基于數(shù)據(jù)版本記錄機(jī)制(version)實(shí)現(xiàn),一般是在數(shù)據(jù)庫(kù)表中加入一個(gè)version字段
          讀取數(shù)據(jù)時(shí)將版本號(hào)一同讀出,之后更新數(shù)據(jù)時(shí)版本號(hào)加一,如果提交數(shù)據(jù)時(shí)片本號(hào)小于
          或等于數(shù)據(jù)庫(kù)表中的版本號(hào),則認(rèn)為數(shù)據(jù)是過(guò)期的,否則給予更新。

          1 Inventory.java:
           
          private int id;
          private String name;
          private int count;
          private int version;
          //version版本號(hào)由數(shù)據(jù)庫(kù)維護(hù),我們不用管
          2 Inventory.hbm.xml
          <class name="Inventory" table="t_inventory2" optimistic-lock="version">
                  
          <id name="id">
                      
          <generator class="native"/>
                  
          </id>
                  
          <property name="name"/>
                  
          <property name="count"/>
                  
          <property name="version"/>
              
          </class>
          posted on 2009-11-03 16:40 junly 閱讀(215) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate/orm
          主站蜘蛛池模板: 北京市| 手机| 云阳县| 莲花县| 巨鹿县| 白城市| 读书| 西林县| 巧家县| 平邑县| 湾仔区| 休宁县| 昭苏县| 专栏| 长宁区| 平原县| 东宁县| 太仆寺旗| 罗定市| 浦北县| 长宁区| 西安市| 丹寨县| 洞口县| 济源市| 兰西县| 高雄市| 利辛县| 凉山| 射洪县| 昔阳县| 德格县| 江源县| 宁远县| 黄大仙区| 克什克腾旗| 石林| 卢龙县| 九江市| 合肥市| 井冈山市|