美文网首页
动态切换数据源与事务的兼容性

动态切换数据源与事务的兼容性

作者: 意大利大炮 | 来源:发表于2021-08-11 11:10 被阅读0次
  • 动态切换数据源使用两种方式:AOP拦截(自定义注解DataSource)、代码里动态切换

  • 使用@Transactional与@DataSource
    若DataSource的切面order低于事务的aop切面,是没有问题的

  • 使用@Transactional与代码切换数据源
    切换数据源无效

  • 使用编程事务与@DataSource
    没有问题

  • 使用编程事务与代码切换数据源

  1. 编程事务包裹代码切换数据源
    切换数据源无效
  2. 编程事务不包裹代码切换数据源
    没有问题
事务 数据源切换 组合方式 事务效果 数据源效果 备注
@Transactional @DataSource 数据源切面order低于事务切面order(Integer.MAX) 有效 有效
@Transactional 代码切换数据源 有效 无效 事务代理的数据源为原数据源
编程事务 @DataSource 有效 有效 事务代理的数据源为切换后的数据源
编程事务 代码切换数据源 编程事务包裹代码切换数据源 有效 无效 事务代理的数据源为原数据源
编程事务 代码切换数据源 编程事务不包裹代码切换数据源 有效 有效 事务代理的数据源为切换后数据源

相关文章

网友评论

      本文标题:动态切换数据源与事务的兼容性

      本文链接:https://www.haomeiwen.com/subject/taoqbltx.html