spring多資料來源下 事務不生效
多資料來源下, 加了@Transactional(rollbackFor = Exception.class)後發現,資料來源切換不了.
不加事務註解,即只有@DataSourceChange時的流程是,程式執行到fetchRawDataForCriterias()方法時,會先去執行 doAround()方法,設定當前執行緒的資料來源.
然後執行 determinCurrentLookupKey()方法,得到當前執行緒的資料來源.
加了@Transactiona後,發現程式會第一時間執行determineCurrentLookupKey(), 後面又執行doAround()方法.但是再後面就不執行determinCurrentLookupKey()了.這就導致,資料來源沒有實現切換.
解決方法:調整兩個annotation執行的先後順序,先執行@DataSourceChange(hopper = true),於是修改下面程式碼,加一個Order註解
如果覺得本篇文章有所幫助,請幫忙微信掃描下本人寫的一個實用小程式 “安全期隨時看”,讓你隨時掌握愛愛時間,多謝幫助!
--------------------------- -------------------------
-------------------------------------------安全期隨時看---------------------------------------------
相關文章
- 實現多資料來源事務
- Springboot 配置多資料來源Mybatis的UnderScore不生效Spring BootMyBatis
- Springboot通過AOP整合多資料來源,分析@Transaction切換資料來源不生效問題Spring Boot
- Spring Boot與多資料來源那點事兒~Spring Boot
- 基於註解的Spring多資料來源配置和使用(非事務)Spring
- spring+atomikos+mybatis 多資料來源事務(動態切換)SpringMyBatis
- 同學,你的多資料來源事務失效了
- MybatisPlus多資料來源及事務解決思路MyBatis
- Spring多資料來源配置Spring
- Spring配置多資料來源Spring
- Spring宣告式事務注意點,以及不生效情況Spring
- Spring Data JPA系列4——Spring宣告式數事務處理與多資料來源支援Spring
- Spring 下,關於動態資料來源的事務問題的探討Spring
- Spring多資料來源獲取Spring
- Spring Boot 配置多資料來源Spring Boot
- Spring Boot 多資料來源配置Spring Boot
- 美團二面:spring事務不生效的15種場景Spring
- spring 多資料來源一致性事務方案Spring
- 分散式事務和資料來源配置分散式
- DB 分庫分表(4):多資料來源的事務處理
- Spring Boot 2.x基礎教程:使用JTA實現多資料來源的事務管理Spring Boot
- Spring是如何支援多資料來源的Spring
- Spring多資料來源管理實現原理Spring
- SpringBoot2 整合JTA元件,多資料來源事務管理Spring Boot元件
- springboot-jta-atomikos多資料來源事務管理Spring Boot
- java DB 雙資料來源和資料庫事務配置Java資料庫
- 請教一個關於多資料來源的分散式事務問題?分散式
- 關於Spring+Mybatis事務管理中資料來源的思考SpringMyBatis
- 使用Spring Boot配置多個資料來源 - UdithSpring Boot
- spring 配置多個資料來源的檔案Spring
- Spring 多資料來源 AOP 動態切換Spring
- Spring+MyBatis多資料來源配置實現SpringMyBatis
- Spring 的AbstractRoutingDataSource實現多資料來源Spring
- 談談Spring Boot 資料來源載入及其多資料來源簡單實現Spring Boot
- Spring Boot MyBatis 動態資料來源切換、多資料來源,讀寫分離Spring BootMyBatis
- Spring Boot 動態資料來源(Spring 註解資料來源)Spring Boot
- Spring基礎系列-Spring事務不生效的問題與迴圈依賴問題Spring
- Spring-Boot 多資料來源配置+動態資料來源切換+多資料來源事物配置實現主從資料庫儲存分離Springboot資料庫