個人理解 Spring 事物

    今天事務搞了快一天,終於基本上搞定了,稍微總結下:

      我使用的是S2SH 開發,所以,事務基本上是Spring來控制

      配置事務:

       首先在app-context.xml 文件中事務已經配好了,並在point參數中,你在service中寫的方法已經配置好了

       對於一般的情況,如果在一次事務中,對同一張表的操作只有一次,只需把dao的方法都放在service實現方法中就OK了

  

       由於我做的項目比較大,不但配置了hibernate事務,並且還配置了jdbcTransactionInterceptor事務。所以,在事務中的寫法有2種選擇

     由於業務的需要,在一個事務中,需要對同一張表進行多次操作,也就是在一個事物中,對同一張表不但有插入操作,並且還有更新操作或者是刪除操作。

      所以出現了一個這樣的情況,第一次插入操作,很快,第二次進行更新操作就很慢了,最後導致表被鎖,且時間過長,最後報如下的錯: Lock wait timeout exceeded; try restarting transaction; nested exception is java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction

    當然,由於我本身是對於插入操作是用了hibernate的事務,而更新操作是用了jdbc的事務,所以就出現如上的錯誤

    改正的辦法是:

         

 

    雖然改正的辦法有很多,但在尋找的過程中還是蠻艱苦的!~

   呵呵!~

   

     

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章