基于Transactional事務(wù)的使用以及注意說(shuō)明
Transactional事務(wù)的使用及注意
Transactional的事務(wù)使用,主要引用兩個(gè)包中的Bean,一個(gè)是jpa的javax.transaction.Transactional,
另外一個(gè)是spring的
org.springframework.transaction.annotation.Transactional
兩個(gè)都能實(shí)現(xiàn)事務(wù)的作用,但是盡量2者不要混用,特別是一個(gè)事務(wù)包含多個(gè)service方法,一個(gè)service方法引用jpa,一個(gè)引用spring的。最好主要使用jpa的
org.springframework.transaction.annotation.Transactional
事務(wù)的回滾是在運(yùn)行時(shí)異常時(shí)進(jìn)行回滾的,所以如果有拋出異常時(shí),拋出的異常需要繼承RunTimeException,如果異常為普通的Exception,則需要在Transactional上標(biāo)明rollbackOn參數(shù)。
具體看如下例子,采用的jpa包中的事務(wù):
import javax.transaction.Transactional;
@Override @Transactional( rollbackOn= AccountCoreException.class) public String lock(OrderBalanceLockRq oclrq) throws AccountGatewayException,AccountCoreException {
public class SystemException extends RuntimeException {
AccountGatewayException繼承SystemException了,繼承了RuntimeException,如果捕獲到該異常,事務(wù)也會(huì)回滾。
AccountCoreException繼承了Exception,非RuntimeException,則rollback聲明一下,捕獲到該異常時(shí),事務(wù)也會(huì)回滾。
找不到Transactional類(lèi) 依賴(lài)@Transactional的解決
看的別人的源代碼是這樣:
import org.springframework.transaction.annotation.Transactional;
但其實(shí)對(duì)我來(lái)說(shuō)是錯(cuò)誤的
應(yīng)該是:
import org.springframework.transaction.annotation.Transactional;
添加的依賴(lài)如下:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>5.0.8.RELEASE</version> </dependency>
最后,今天的一大收獲是知道了
可以查所需要的東西,直接復(fù)制粘貼dependency。有些類(lèi)不在我們所以為的包里,這個(gè)網(wǎng)站就顯得很有用。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- spring 中事務(wù)注解@Transactional與trycatch的使用
- Spring事務(wù)注解@Transactional失效的八種場(chǎng)景分析
- 解決@Transactional注解事務(wù)不回滾不起作用的問(wèn)題
- Java注解@Transactional事務(wù)類(lèi)內(nèi)調(diào)用不生效問(wèn)題及解決辦法
- Spring聲明式事務(wù)@Transactional知識(shí)點(diǎn)分享
- springboot中事務(wù)管理@Transactional的注意事項(xiàng)與使用場(chǎng)景
- 淺談Spring中@Transactional事務(wù)回滾及示例(附源碼)
- Transactional replication(事務(wù)復(fù)制)詳解之如何跳過(guò)一個(gè)事務(wù)
相關(guān)文章
mybatis中的if?test判斷入?yún)⒌闹祮?wèn)題
這篇文章主要介紹了mybatis中的if?test判斷入?yún)⒌闹祮?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Spring IOC創(chuàng)建對(duì)象的兩種方式
這篇文章主要給大家介紹了關(guān)于Spring IOC創(chuàng)建對(duì)象的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03java實(shí)現(xiàn)附件預(yù)覽(openoffice+swftools+flexpaper)實(shí)例
本篇文章主要介紹了java實(shí)現(xiàn)附件預(yù)覽(openoffice+swftools+flexpaper)實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-10-10SpringCloud Open feign 使用okhttp 優(yōu)化詳解
這篇文章主要介紹了SpringCloud Open feign 使用okhttp 優(yōu)化詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02最新jsonwebtoken-jwt 0.12.3 基本使用小結(jié)
這篇文章主要介紹了最新jsonwebtoken-jwt 0.12.3 基本使用小結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-12-12Java實(shí)現(xiàn)經(jīng)典游戲2048的示例代碼
2014年Gabriele Cirulli利用周末的時(shí)間寫(xiě)2048這個(gè)游戲的程序。本文將用java語(yǔ)言實(shí)現(xiàn)這一經(jīng)典游戲,并采用了swing技術(shù)進(jìn)行了界面化處理,需要的可以參考一下2022-02-02Java數(shù)據(jù)結(jié)構(gòu)之平衡二叉樹(shù)的原理與實(shí)現(xiàn)
平衡樹(shù)(Balance Tree,BT) 指的是,任意節(jié)點(diǎn)的子樹(shù)的高度差都小于等于1。常見(jiàn)的符合平衡樹(shù)的有,B樹(shù)(多路平衡搜索樹(shù))、AVL樹(shù)(二叉平衡搜索樹(shù))等。本文將詳細(xì)介紹平衡二叉樹(shù)的概念和實(shí)現(xiàn)原理以及它的實(shí)現(xiàn)2022-01-01spring boot整合quartz實(shí)現(xiàn)多個(gè)定時(shí)任務(wù)的方法
這篇文章主要介紹了spring boot整合quartz實(shí)現(xiàn)多個(gè)定時(shí)任務(wù)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-01-01