西沙璞玉
          愛(ài)不容易
          posts - 0,comments - 4,trackbacks - 0
          @Transactional

          spring 事務(wù)注解

          默認(rèn)遇到throw new RuntimeException("...");會(huì)回滾
          需要捕獲的throw new Exception("...");不會(huì)回滾

          // 指定回滾
          @Transactional(rollbackFor=Exception.class)
              public void methodName() {
                 // 不會(huì)回滾
                 throw new Exception("...");
              }
          //指定不回滾
          @Transactional(noRollbackFor=Exception.class)
              public ItimDaoImpl getItemDaoImpl() {
                  // 會(huì)回滾
                  throw new RuntimeException("注釋");
              }

              // 如果有事務(wù),那么加入事務(wù),沒(méi)有的話(huà)新建一個(gè)(不寫(xiě)的情況下)
              @Transactional(propagation=Propagation.REQUIRED)
              // 容器不為這個(gè)方法開(kāi)啟事務(wù)
              @Transactional(propagation=Propagation.NOT_SUPPORTED)
              // 不管是否存在事務(wù),都創(chuàng)建一個(gè)新的事務(wù),原來(lái)的掛起,新的執(zhí)行完畢,繼續(xù)執(zhí)行老的事務(wù)
              @Transactional(propagation=Propagation.REQUIRES_NEW)
              // 必須在一個(gè)已有的事務(wù)中執(zhí)行,否則拋出異常
              @Transactional(propagation=Propagation.MANDATORY)
              // 必須在一個(gè)沒(méi)有的事務(wù)中執(zhí)行,否則拋出異常(與Propagation.MANDATORY相反)
              @Transactional(propagation=Propagation.NEVER)
              // 如果其他bean調(diào)用這個(gè)方法,在其他bean中聲明事務(wù),那就用事務(wù).如果其他bean沒(méi)有聲明事務(wù),那就不用事務(wù).
              @Transactional(propagation=Propagation.SUPPORTS)
             
              /*
              public void methodName(){
                 // 本類(lèi)的修改方法 1
                 update();
                 // 調(diào)用其他類(lèi)的修改方法
                 otherBean.update();
                 // 本類(lèi)的修改方法 2
                 update();
              }
              other失敗了不會(huì)影響 本類(lèi)的修改提交成功
              本類(lèi)update的失敗,other也失敗
              */
          @Transactional(propagation=Propagation.NESTED)
          // readOnly=true只讀,不能更新,刪除
          @Transactional (propagation = Propagation.REQUIRED,readOnly=true)
          // 設(shè)置超時(shí)時(shí)間
          @Transactional (propagation = Propagation.REQUIRED,timeout=30)
          // 設(shè)置數(shù)據(jù)庫(kù)隔離級(jí)別
          @Transactional (propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)

          posted on 2012-04-12 10:07 @趙 閱讀(47448) 評(píng)論(2)  編輯  收藏

          FeedBack:
          # re: Spring 之注解事務(wù) @Transactional
          2014-08-19 14:39 | cqchen
          指定回滾的那個(gè)例子是不是有問(wèn)題  回復(fù)  更多評(píng)論
            
          # re: Spring 之注解事務(wù) @Transactional [未登錄](méi)
          2014-09-25 09:19 | test
          @cqchen
          對(duì)··是錯(cuò)的··  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          哥哥最近不是很忙
          主站蜘蛛池模板: 涡阳县| 临桂县| 新建县| 库伦旗| 通许县| 通城县| 元氏县| 龙里县| 大石桥市| 黄陵县| 沧源| 潍坊市| 萨嘎县| 门头沟区| 凤台县| 黄石市| 湖北省| 宁南县| 从江县| 宁明县| 鄱阳县| 南汇区| 黄大仙区| 贡山| 罗山县| 兴化市| 改则县| 微山县| 额敏县| 耒阳市| 内丘县| 漳浦县| 皋兰县| 鄂托克前旗| 黄梅县| 奇台县| 威宁| 安图县| 庐江县| 莱州市| 连州市|