基于Transactional事務(wù)的使用以及注意說明
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類 依賴@Transactional的解決
看的別人的源代碼是這樣:
import org.springframework.transaction.annotation.Transactional;
但其實(shí)對我來說是錯(cuò)誤的
應(yīng)該是:
import org.springframework.transaction.annotation.Transactional;
添加的依賴如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.8.RELEASE</version>
</dependency>
最后,今天的一大收獲是知道了
可以查所需要的東西,直接復(fù)制粘貼dependency。有些類不在我們所以為的包里,這個(gè)網(wǎng)站就顯得很有用。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- spring 中事務(wù)注解@Transactional與trycatch的使用
- Spring事務(wù)注解@Transactional失效的八種場景分析
- 解決@Transactional注解事務(wù)不回滾不起作用的問題
- Java注解@Transactional事務(wù)類內(nèi)調(diào)用不生效問題及解決辦法
- Spring聲明式事務(wù)@Transactional知識點(diǎn)分享
- springboot中事務(wù)管理@Transactional的注意事項(xiàng)與使用場景
- 淺談Spring中@Transactional事務(wù)回滾及示例(附源碼)
- Transactional replication(事務(wù)復(fù)制)詳解之如何跳過一個(gè)事務(wù)
相關(guān)文章
java注釋轉(zhuǎn)json插件開發(fā)實(shí)戰(zhàn)詳解
這篇文章主要為大家介紹了java注釋轉(zhuǎn)json插件開發(fā)實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
Java 中的 getDeclaredMethods() 方法(使用與原理)
文章介紹了Java反射機(jī)制中的`getDeclaredMethods()`方法,詳細(xì)講解了其使用方法、原理、注意事項(xiàng)以及實(shí)際應(yīng)用場景,幫助讀者更好地理解和應(yīng)用這一強(qiáng)大的工具,感興趣的朋友一起看看吧2024-12-12
PostMan傳@RequestParam修飾的數(shù)組方式
這篇文章主要介紹了PostMan傳@RequestParam修飾的數(shù)組方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼
這篇文章主要介紹了JAVA實(shí)現(xiàn)將磁盤中所有空文件夾進(jìn)行刪除的代碼,需要的朋友可以參考下2017-06-06
自帶IDEA插件的阿里開源診斷神器Arthas線上項(xiàng)目BUG調(diào)試
這篇文章主要為大家介紹了自帶IDEA插件阿里開源診斷神器Arthas線上項(xiàng)目BUG調(diào)試,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

