@Transaction 注解导致动态切换更改数据库失效

@Transaction 注解导致动态切换更改数据库失效

使用场景

  1. 给所有的Controller方法上加切点
  2. @Before注解的方法里,根据http请求中携带的header,动态切换数据源
  3. 使用mybatis或者jpa执行操作

遇到问题

当给Controller方法加上@Transaction注解后,动态切换数据源就失效了,原因是每次@Before注解的方法运行之前,protected abstract Object determineCurrentLookupKey();就已经运行了,而这个方法是切换数据源的关键。

解决

其实也算不上解决,就是不要在Controller方法上加事务注解,非要加事务,中间的Service层就不要省了。

猜你喜欢

转载自blog.csdn.net/m0_37659871/article/details/81672373