国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Spring 事務回滾機制

2019-11-10 18:06:36
字體:
來源:轉載
供稿:網友
摘要: SPRing事物回滾

異常回滾示例

捕獲異常,不拋出,事物不能回滾!!!

if(userSave){              try {                 userDao.save(user);                  userCapabilityQuotaDao.save(capabilityQuota);              } catch (Exception e) {                  logger.info("能力開通接口,開戶異常,異常信息:"+e);              }          }

  2.捕獲異常,拋出運行時異常,回滾。當一個方法出錯,另一個方法必然回滾

if(userSave){              try {                  userDao.save(user);                  userCapabilityQuotaDao.save(capabilityQuota);                } catch (Exception e) {                 logger.info("能力開通接口,開戶異常,異常信息:"+e);                  throw new RuntimeException();              }          }

 3.捕獲異常,手動回滾

if(userSave){              try {                  userDao.save(user);                  userCapabilityQuotaDao.save(capabilityQuota);              } catch (Exception e) {                  logger.info("能力開通接口,開戶異常,異常信息:"+e);                  TransactionaspectSupport.currentTransactionStatus().setRollbackOnly();             }          }

 異常事務回滾解決方案: 

 方案1.

       例如service層處理事務,那么service中的方法中不做異常捕獲,或者在catch語句中最后增加throw new RuntimeException()語句,以便讓aop捕獲異常再去回滾,并且在service上層(webservice客戶端,view層action)要繼續捕獲這個異常并處理

  方案2.

       在service層方法的catch語句中增加:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();語句,手動回滾,這樣上層就無需去處理異常

來源: https://my.oschina.net/manmao/blog/593886
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀集县| 焦作市| 和平县| 鹤壁市| 永康市| 镇原县| 尤溪县| 洪湖市| 安达市| 东兰县| 昌平区| 阳原县| 桑日县| 康马县| 沾益县| 扎鲁特旗| 奎屯市| 元阳县| 廉江市| 尉犁县| 林州市| 苏尼特右旗| 眉山市| 宁河县| 上饶县| 黎城县| 宜黄县| 金乡县| 宜良县| 沛县| 文水县| 明光市| 孝昌县| 望奎县| 涿州市| 澄城县| 云南省| 延吉市| 田东县| 宁夏| 怀柔区|