Java中MybatisPlus使用多線程多數據源失效

Java中MybatisPlus使用多線程多數據源失效

文章目錄

  • Java中MybatisPlus使用多線程多數據源失效
    • 一:背景
    • 二:解決方法
    • 三:其他導致@DS失效的條件
      • 3.1、@Transactional

一:背景

Mybatis-Plus使用異步任務后不能找到指定設置的@DS數據庫,所有請求指向了主數據庫

二:解決方法

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
public void saveInventoryFlow(Long orgKkd, String orgNameKkd, List<SaveAbInventoryFlowReq> requests) {if (ObjectUtil.isEmpty(requests)) {return;}CompletableFuture.runAsync(() -> {DynamicDataSourceContextHolder.push("qjs");List<TemInventoryFlow> list = requests.stream().map(request -> {TemInventoryFlow abInventoryFlow = new TemInventoryFlow();BeanUtils.copyProperties(request, abInventoryFlow);abInventoryFlow.setOrgId(orgKkd);return abInventoryFlow;}).collect(Collectors.toList());temInventoryFlowRepo.saveBatch(list);DynamicDataSourceContextHolder.clear();}, poolExecutor);
}

三:其他導致@DS失效的條件

3.1、@Transactional

Spring的@Transactional聲明式事務管理時通過動態代理實現的。

解決方法:
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/93132.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/93132.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/93132.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器翻譯:模型微調(Fine-tuning)與調優詳解

文章目錄一、模型微調&#xff08;Fine-tuning&#xff09;概述1.1 模型微調是什么&#xff1f;1.2 為什么需要微調&#xff1f;1.3 微調的核心步驟1.4 選擇微調策略1.5 訓練與優化1.6 微調 vs. 從頭訓練&#xff08;From Scratch&#xff09;1.7 微調工具推薦二、模型調優&…

如何使用 AI 大語言模型解決生活中的實際小事情?

在 AI 技術飛速發展的今天&#xff0c;大語言模型早已不是實驗室里的 “黑科技”&#xff0c;而是能實實在在融入日常生活的實用工具。從日常瑣事處理到學習工作輔助&#xff0c;只需掌握簡單的使用技巧&#xff0c;就能讓 AI 成為你的 “生活小助手”。本文將通過具體場景案例…

佰力博檢測與您探討低溫條件下如何測介電性能

在低溫條件下測量介電性能時&#xff0c;需要綜合考慮溫度控制、樣品制備、測試設備和測量方法等多個方面。1.溫度控制與降溫方法1.低溫測試中&#xff0c;溫度的精確控制是關鍵。低溫測試通常采用液氮或液氮泵進行降溫&#xff0c;以達到極低溫度&#xff08;如-196C&#xff…

大規模分布式光伏并網后對電力系統的影響

光伏發電作為一種清潔、可再生的能源&#xff0c;正融入我們的電力系統&#xff0c;但是&#xff0c;隨著新能源的發展&#xff0c;光伏發電的大規模并網&#xff0c;也給電網的穩定運行帶來了新的挑戰。下面小編將從四個方面&#xff0c;分別論述光伏并網對電網的影響以及如何…

LeetCode熱題100--146.LRU緩存--中等

1. 題目 請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類&#xff1a; LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存int get(int key) 如果關鍵字 key 存在于緩存中&#xff0c;則返回關鍵字的值&#xff0c;否則…

機器學習學習總結

一、機器學習到底是什么&#xff1f; 簡單說&#xff0c;機器學習就是讓計算機像人一樣 “從經驗中學習”。比如我們學騎自行車&#xff0c;摔多了就知道怎么保持平衡&#xff1b;計算機處理任務時&#xff0c;也能通過分析大量 “經驗數據”&#xff0c;自己找到規律&#xff…

Boost庫中boost::function函數使用詳解

1. 函數作用 boost::function 是 Boost 庫提供的一個 通用函數封裝器&#xff0c;可用于存儲、傳遞和調用任意可調用對象&#xff08;如普通函數、函數指針、Lambda、函數對象、成員函數指針等&#xff09;。它類似于 C11 及以上標準的 std::function。 作用總結&#xff1a; 可…

SQL Server安全刪除數據并釋放空間的技術方案

在SQL Server中執行大規模數據刪除時&#xff0c;直接使用DELETE語句可能導致日志文件暴漲、事務阻塞和性能下降。以下提供一種安全刪除數據并釋放磁盤空間的完整方案&#xff1a; 方案核心步驟 -- 設置讀未提交隔離級別&#xff08;避免鎖競爭&#xff09; SET TRAN ISOLATION…

EgoVLA——根據第一視角的人類視頻中訓練的VLA模型:助力家具組裝等人形靈巧操作任務的攻克(利用可穿戴手部追蹤)

前言 我在此文《ForceVLA——將具備力感知的MoE整合進π0的動作專家中&#xff1a;從而融合“視覺 語言 力反饋”三者實現精密插拔》的開頭說過&#xff0c;我司「七月在線」目前側重以下兩大本體的場景落地 人形層面&#xff0c;側重 1.1 人形靈巧操作 1.2 人形展廳講解機械…

廚具新風尚,解鎖廚房新體驗

在快節奏的現代生活中&#xff0c;廚房已不僅僅是烹飪的場所&#xff0c;更是家庭溫馨與創意的源泉。一款好的廚具&#xff0c;不僅能讓烹飪變得輕松愉悅&#xff0c;更能為餐桌增添無限風味。今天&#xff0c;就讓我們一起走進廚具的新世界&#xff0c;解鎖那些令人愛不釋手的…

手機長焦進化史:攀過十年,終抵云巔

今天&#xff0c;華為相機解決方案專家熊諶飛在《長焦十年之路對談》直播中&#xff0c;首次系統揭秘了華為手機長焦技術的十年進化史。從P9雙攝到Pura 80系列“一鏡雙目”&#xff0c;每一代影像旗艦&#xff0c;都有一段鮮為人知的誕生秘辛。不少觀眾這才恍然大悟&#xff1a…

鈣鈦礦光伏:十年磨一劍,產業化突圍路在何方?

2013年&#xff0c;一種具有高效太陽能轉化率、高電荷傳輸率、低成本、制作簡單等優點的新型太陽能電池材料——鈣鈦礦突然出現在大眾視野。相比于又重又硬、轉換效率通常只有22&#xff05;-26&#xff05;的傳統晶體硅太陽能板&#xff0c;鈣鈦礦太陽能電池薄如蟬翼可彎曲&am…

斷言:assert()的實用指南

目錄 一、斷言概述 二、基本用法 三、工作原理 四、斷言的優點 五、啟用和禁用斷言 六、性能考慮 七、最佳實踐 八、示例代碼 一、斷言概述 assert.h 頭文件定義了宏 assert()&#xff0c;用于在運行時驗證程序是否符合指定條件。如果條件不滿足&#xff0c;程序會報錯并…

開發避坑指南(27):Vue3中高效安全修改列表元素屬性的方法

需求 Vue3 中如何遍歷list并修改list元素的屬性的值&#xff1f; 解決辦法 1、?使用 map 方法? const newList list.value.map(item > {return {...item,modifiedProperty: newValue // 修改的屬性名稱和屬性值} })Vue 中的 map() 函數是 JavaScript 數組的高階函數&…

L4 級別自動駕駛 硬件架構設計

L4 級自動駕駛&#xff08;根據 SAE 標準&#xff0c;屬于 “高度自動化”&#xff09;的核心是系統在特定場景下&#xff08;如城市道路、高速路&#xff09;可完全自主完成駕駛任務&#xff0c;無需駕駛員干預&#xff0c;且在系統失效時能自動實現安全降級。其硬件架構需滿足…

【網絡安全測試】手機APP安全測試工具NowSecure 使用指導手冊(有關必回)

以下是 NowSecure安全測試工具 的詳細使用指導&#xff0c;涵蓋從環境準備、測試配置到報告分析的完整流程&#xff0c;適合團隊協作或合規性審計場景&#xff1a; NowSecure 使用指導手冊 1. 工具簡介 定位&#xff1a;自動化移動應用&#xff08;Android/iOS&#xff09;安全…

Matlab(5)進階繪圖

一、Advanced 2D plots1. Logarithm Plotsx logspace(-1,1,1000); % 從-1到1生成等間隔的1000個點 y x .^ 2; subplot(2,2,1); plot(x,y); title(Plot); subplot(2,2,2); semilogx(x,y); title(Semilogx); subplot(2,2,3); semilogy(x,y); title(Semilogy); subplot(2,2,4);…

運維學習Day22——Anisible自動化與基本使用

文章目錄01-Ansible 自動化介紹Ansible 自動化介紹手動執行任務和自動化執行任務基礎架構即代碼Ansible 與 DevOps什么是 ANSIBLE&#xff1f;Ansible 特點Ansible 概念和架構Ansible WayAnsible 用例Ansible 部署準備實驗環境控制節點受管節點LinuxWindows網絡設備02-Ansible …

Codeforces Deque工藝

題目來源&#xff1a; 問題 - 2128B - Codeforces 這道題有些地方表達的并不是特別準確&#xff0c;首先就是從最左端與最右端移除一個元素&#xff0c;實際含義是從原數組的最左端或者最右段依次取出一個元素構成一個新的數組&#xff0c;使得這個新數組的數組符合題目的“好…

談談《More Effective C++》的條款30:代理類

在《More Effective C》的條款30中&#xff0c;Scott Meyers深入探討了**代理類&#xff08;Proxy Classes&#xff09;**的設計與應用。代理類是一種通過重載運算符模擬原始對象行為的設計模式&#xff0c;其核心目標是在不直接暴露原始對象的情況下&#xff0c;提供額外功能、…