public class DSService{
@Autowired
AService aService;
@Autowired
BService bService;
pulic void testDs(){
aService.test();
bService.test();
}
@Transactional
pulic void testDs2(){
aService.test();
bService.test();
}
}
调用testDs没问题,调用testDs2有问题,因为testDs2处于一个事务方法中,一个事务方法中的所有sql必须要基于同一个connection,所以,这个方法开始之前,就已经确定了一个数据源,且全程会用这一个数据源,此时会报错, tablexxx not exists。因为如果是用的AService数据源,在查询BService时,依然是用的AService数据源,就会导致查询逻辑错误或者数据报错。