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

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

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

    積累,創造,分享!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      25 Posts :: 13 Stories :: 26 Comments :: 0 Trackbacks

    在目前使用的現有框架當中,利用springAOP機制來控制事務處理是目前最流行的一種控制事務的方式。

    但是我們在某種使用場合的過程中,為什么有時事務處理老是不起作用呢?這里,為您道出原因之一,

    首先請看一段話

    Spring的事務實現采用基于AOP的攔截器來實現,如果沒有在事務配置的時候注明回滾的checked exception,那么只有在發生了unchecked exception的時候,才會進行事務回滾。

    有必要先解釋一下checked exceptionunchecked exception

    先看看EXCEPTIONJDK文檔當中的結構

    java.lang.Object
      繼承者 java.lang.Throwable
          繼承者 java.lang.Exception
              繼承者 java.lang.RuntimeException
     
    Unchecked exception: 這類異常都是RuntimeException的子類,雖然RuntimeException同樣也是Exception的子類,但是它們是特殊的。Exception是作為checked Exception 出現的。
    所以,除了ErrorRuntimeException,其他剩下的異常都是你需要關心的,而這些異常類統稱為Checked Exception
     

    有了以上的基礎,看看我們框架當中的事務屬性

    <property name="transactionAttributes">

                         <props>

                                <prop key="get*">PROPAGATION_REQUIRED,readOnly </prop>

                                <prop key="save*">PROPAGATION_REQUIRED </prop>

                                <prop key="delete*">PROPAGATION_REQUIRED</prop>

                                <prop key="update*">PROPAGATION_REQUIRED </prop>

                         </props>

     

    </property>

     

    此處,我們沒有指定任何異常,那么它目前默認處理的就是unchecked exception了,再結合我們自身每個項目的模塊,在我們的每個項目當中幾乎都定義了自己的異常,這些異常都是繼承自Exception,很不幸的是,我們繼承的Exception包括自己定義的異常,都是checked exception

     

    所以,在我們的事務處理機制當中,事務不管用了。

    解決辦法有2個:

    1,在事務屬性后面加上需要回滾的checked exception。比如<prop key="save*">PROPAGATION_REQUIRED,-XXXXException</prop>(注意那個"-",對應的是"+")

    2, 不改配置文件,將需要事務回滾的異常繼承自unchecked exception類,也就是RuntimeException

    (nighthawk)

    posted on 2007-07-09 09:32 nighthawk 閱讀(2092) 評論(3)  編輯  收藏

    Feedback

    # re: 誰讓事務控制不起作用了? 2007-07-10 10:14 tozx96
    你說的“在我們的事務處理機制當中,事務不管用了你說的”,是指出現chedked exception時也會被commit,還是說根本就不commit?  回復  更多評論
      

    # re: 誰讓事務控制不起作用了? 2007-07-10 13:35 nighthawk
    事務不起作用的情況下當然是commit了.  回復  更多評論
      

    # re: 誰讓事務控制不起作用了? 2007-07-12 11:27 Scott.Pan
    分析的不錯,收藏了。期待關于事務處理的更多精辟見解。  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产v片免费播放| 免费无遮挡无码视频网站| 久久精品国产精品亚洲下载 | 人人狠狠综合久久亚洲88| 黄页视频在线观看免费| 手机看片久久国产免费| 亚洲成在人线在线播放无码| 国产免费不卡视频| 男人进去女人爽免费视频国产| 亚洲日韩一页精品发布| WWW免费视频在线观看播放| 国产av无码专区亚洲av果冻传媒 | 久久精品国产96精品亚洲 | 国产成人无码区免费内射一片色欲| 亚洲AV无码乱码在线观看| 一级女人18片毛片免费视频 | 免费无码不卡视频在线观看| 日本亚洲精品色婷婷在线影院| 九九免费久久这里有精品23| 亚洲乱码中文字幕综合234| 亚洲一区二区三区免费视频| 女人18毛片免费观看| 亚洲国产一区二区三区在线观看| 在线日韩av永久免费观看| 免费国产高清毛不卡片基地| 久久久久噜噜噜亚洲熟女综合| 中文字幕无线码免费人妻| 亚洲av无码成人黄网站在线观看| 成年人网站免费视频| 亚洲国产精品无码第一区二区三区 | 国产V亚洲V天堂无码| 亚洲一区二区三区免费在线观看| 国产成人亚洲综合一区| 亚洲免费视频一区二区三区| 午夜爽爽爽男女免费观看影院| 亚洲一区欧洲一区| 亚洲精品无码永久在线观看| 91免费福利精品国产| 亚洲老熟女五十路老熟女bbw| 亚洲综合另类小说色区色噜噜| 香蕉免费一区二区三区|