java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案
spring?AOP?默認對RuntimeException()異常或是其子類進行事務回滾,也就是說
事務回滾:throw new?RuntimeException("xxxxxxxxxxxx");
事物不回滾:throw new?Exception("xxxxxxxxxxxx");
那么,如何在拋出Exception或者自定義異常時,事務也進行回滾呢?有以下幾種方案:
1、在捕獲到異常或者顯示的拋出?RuntimeException
2、手動回滾----在捕獲到異常或者顯示的拋出自定義異常前,加一段代碼:
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
3、在AOP的配置文件中,添加如下信息:
這樣,在拋出自定義異常時,就會進行事務的回滾了
小結:
方法1:在做測試時比較方便,放在業務中無法區分具體的錯誤信息
方法2:在個別業務處理或者調試代碼時使用,放在代碼中不方便維護,每個異常都需要增加。
方法3:適合業務開發,也符合AOP的理念。將事務控制和業務分離
普通的jdbc事務在插入數據后 下面的代碼報錯時 數據不會回滾 但是 spring的事務會回滾
普通的jdbc事務在插入數據后 下面的代碼報錯時 數據不會回滾 但是 spring的事務會回滾
Spring管理事務默認回滾的異常
一.默認方式 Spring的事務管理默認只對出現運行期異常(java.lang.RuntimeException及其子類),Error進行回滾.?如果一個方法拋出Exception或者Checked異 ...
spring + mybatis 注解式事務不回滾的原因分析 @Transactional
在一個項目中發現spring的事務無法回滾. DEBUG: org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.ses ...
Spring事務異常回滾,捕獲異常不拋出就不會回滾(轉載) 解決了我一年前的問題
最近遇到了事務不回滾的情況,我還考慮說JPA的事務有bug? 我想多了.......????為了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是這邊情況來了,當這個方法異常 ...
Spring事務異常回滾,捕獲異常不拋出就不會回滾
最近遇到了事務不回滾的情況,我還考慮說JPA的事務有bug? 我想多了.......????為了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是這邊情況來了,當這個方法異常 ...
【轉】Spring事務異常回滾,捕獲異常不拋出就不會回滾
最近遇到了事務不回滾的情況,我還考慮說JPA的事務有bug? 我想多了.......?? ??為了打印清楚日志,很多方法我都加tyr catch,在catch中打印日志.但是這邊情況來了,當這個方法異 ...
Spring AOP聲明式事務異常回滾(轉)
轉:http://hi.baidu.com/iduany/item/20f8f8ed24e1dec5bbf37df7 Spring AOP聲明式事務異常回滾 近日測試用例,發現這樣一個現象:在業務代碼 ...
Spring AOP聲明式事務異常回滾
近日測試用例,發現這樣一個現象:在業務代碼中,有如下兩種情況,比如:throw?new?RuntimeException("xxxxxxxxxxxx");?事物回滾throw?ne ...
Spring聲明式事務不回滾問題
疑問,確實像往常一樣在service上添加了注解?@Transactional,為什么查詢數據庫時還是發現有數據不一致的情況,想想肯定是事務沒起作用,出現異常的時候數據沒有回滾.于是就對相關代碼進行了 ...
隨機推薦
XJOI‘s story (不定期連載)
王城雙基的力量.... 我也不知道寫寫這種東西會不會被查大表..尷尬 ?. 我為什么要寫這東西: 為了蛤雞 為了紅太陽 xj 人物列傳 2017 ? 1,6 ? Friday 得到大新聞 機房后面的監 ...
wifi詳解(五)
1????????Android平臺的Wifi模塊移植要點 1.1??????Wifi結構 user interface Android WiFiService WPA_Supplicant DHD ...
Best Time to Buy and Sell Stock IV 解答
Question Say you have an array for which the ith element is the price of a given stock on day i. Des ...
tomcat異常
java.lang.UnsupportedClassVersionError: org/apache/lucene/store/Directory : Unsupported major.minor ...
springboot多模塊項目下,子模塊調用報錯:程序包xxxxx不存在
今天在用springboot搭建多模塊項目,結構中有一個父工程Parent? 一個通用核心工程core 以及一個項目工程A 當我在工程A中引入core時,沒有問題,maven install正常 當我 ...
python 標準庫 glob ,python glob 學習
glob庫是最簡單的模塊之一,內容非常少.用它可以查找符合特定規則的文件路徑名.跟使用 windows 下的文件搜索差不多.查找文件只用到三個匹配符: ”*”, 匹配 個或多個字符: “?”, ”?” ...
20模板方法模式TemplateMethod
一.什么是模板方法模式 Template Method模式也叫模板方法模式,是 行為模式之一,它把具有特定步驟算法中的某些 必要的處理委讓給抽象方法,通過子類繼承對抽 象方法的不同實現改變整個算法的行 ...
ADNI數據
之前整理的數據相關內容 數據的模態有 Clinical Data(臨床數據) Genetic(基因數據) MRI PET BIOSPECIMEN(生物樣本) 各模態數據的內容.特點 Clinical ...
c++ 繼承(二)
不能自動繼承的成員函數 1.構造函數 2.析構函數 3.=運算符 繼承與構造函數 1.基類的構造函數不被繼承,派生類中需要聲明自己的構造函數 2.聲明構造函數時,只需要對本類中新增成員進行初始化,對繼 ...
棋盤游戲 HDU - 1281 (刪點 二分匹配)
小希和Gardon在玩一個游戲:對一個N*M的棋盤,在格子里放盡量多的一些國際象棋里面的“車”,并且使得他們不能互相攻擊,這當然很簡單,但是Gardon限制了只有某些格子才可以放,小希還是很輕松的解決 ...
總結
以上是生活随笔為你收集整理的java 自定义异常 未回滚_抛出自定义异常,spring AOP事务不回滚的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 禁止使用多线程_Java多线程
- 下一篇: java创建请求拦截器_80.简单Ret