日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

記錄一次多數據源配置失效的情況

作者:何中應 更新時間: 2023-12-10 編程語言

說明:在一些復雜的業務情景,比如我們需要在一個訂單審核通過后,在將數據庫狀態修改的同時,將訂單與訂單詳細這兩條數據寫入到另一個數據庫中。我們就可以通過在配置文件中,配置多數據源,然后通過在Mapper的方法上加@DS注解,來實現這樣的業務。

spring:
  datasource:
  	......
    dynamic:
      datasource:
        # 主要的數據庫
        master:
          url: ......
          username: ......
          password: ......
          driver-class-name: ......
        # 2號數據庫
        extends:
          url: ......
          username: ......
          password: ......
          driver-class-name: ......

使用@DS注解切換數據源;

@Mapper
public interface OrderMapper extends BaseMapper<Order> {

    @DS("extends")
    void saveOrder(Order order);
}

問題:使用了注解,配置中也配置了對應的數據源,但是實際操作并沒有生效,報數據庫表不存在的錯誤;

	@Override
    @Transactional(rollbackFor = Exception.class)
	public Result<?> orderApprove(Integer id, Integer approveStatus) {
	   ......
	}

解決:因為在Service實現類對應的方法上面加了事務注解(@Transactional),事務在跨數據源的情況下是不會生效的,去掉之后就能正常切換數據源了。

原文鏈接:https://blog.csdn.net/qq_42108331/article/details/134366176

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新