Spring宣告式事務注意點,以及不生效情況
情況1:
class XxxService{
public void methodA(){
methodB()
}
@Transactional
public void methodB(){
saveXX1();
saveXX2();
}
}
- 入口,呼叫XxxService的methodA方法。methodA內部呼叫methodB方法。
- 情況1【事務不生效】-此事methodA上沒有事務註解
- 可以給methodA也增加@Transactional
情況2:
class XxxService{
@Transactional
public void methodA(){
methodB()
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodB(){
saveXX1();
saveXX2();
}
}
- 入口,呼叫XxxService的methodA方法。methodA內部呼叫methodB方法。methodB意圖開啟新事務
- 情況2【事務不新建立,傳播沿用methodA的事務】
- 可以將methodB方法放到其他類中,解決問題。(即:通過YyyService.methodB()方式掉用)
注意點:
- 異常問題,spring預設異常是RuntimeException通過下面方法修改,@Transactional(rollbackFor = Exception.class)
- 回滾問題,可以通過throw new RuntimeTimeException()回滾,或者try..catch..異常後,顯示回滾。
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- 如果try… catch..異常後,不再次丟擲或者不顯示回滾,事務不生效
- 資料庫引擎要支援事務,如果是mysql,注意表要使用支援事務的引擎,比如innodb,如果是myisam,事務是不起作用的。
- 開啟註解事務的支援:
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
相關文章
- 三 Spring 宣告式事務Spring
- Spring-宣告式事務Spring
- Spring宣告式事務控制Spring
- Spring宣告式事務@Transactional使用Spring
- spring宣告式事務管理配置Spring
- Spring事務的介紹,以及基於註解@Transactional的宣告式事務Spring
- Spring的事務管理(二)宣告式事務管理Spring
- 深刻理解Spring宣告式事務Spring
- Spring @Transactional 宣告式事務揭祕Spring
- 五(二)、spring 宣告式事務xml配置SpringXML
- JavaEE(12)Spring整合Mybaits、宣告式事務JavaSpringAI
- Springboot資料庫事務處理——Spring宣告式事務Spring Boot資料庫
- spring多資料來源下 事務不生效Spring
- Spring宣告式事務控制原理之宣告式事務的重要元件在AOP中的應用Spring元件
- Spring宣告式事務純xml模式回顧SpringXML模式
- Spring筆記(4) - Spring的程式設計式事務和宣告式事務詳解Spring筆記程式設計
- 筆記53-Spring jdbcTemplate&宣告式事務筆記SpringJDBC
- Spring宣告式事務的兩種實現方式Spring
- Spring事務需要注意的幾個點Spring
- Spring程式設計式和宣告式事務例項講解Spring程式設計
- 注意Spring事務這一點,避免出現大事務Spring
- 美團二面:spring事務不生效的15種場景Spring
- day15-宣告式事務
- 完蛋,我的事務怎麼不生效?
- Spring/SpringBoot中的宣告式事務和程式設計式事務原始碼、區別、優缺點、適用場景、實戰Spring Boot程式設計原始碼
- 棧空間受限情況下C/C++函式呼叫注意事項C++函式
- 保護億萬資料安全,Spring有“宣告式事務”絕招Spring
- day16-宣告式事務-02
- springboot專案-宣告式事務失效Spring Boot
- Spring基礎系列-Spring事務不生效的問題與迴圈依賴問題Spring
- Spring Cloud Feign 宣告式服務呼叫SpringCloud
- 宣告式服務呼叫 Spring Cloud FeignSpringCloud
- 定時任務裡面事務不生效問題
- spring事物配置,宣告式事務管理和基於@Transactional註解的使用Spring
- spring cloud gateway 不生效SpringCloudGateway
- Spring Data JPA系列4——Spring宣告式數事務處理與多資料來源支援Spring
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- 微服務分散式事務之LCN、TCC特點、事務補償機制緣由以及設計重點微服務分散式
- Spring中同一個service中方法相互呼叫事務不生效問題解決方案Spring