在MyBatis-Plus配置了多資料來源的情況下,使用@Transactional註解啟動事務後,會導致@DS註解失效。
具體場景如下:
AEntityMapper.java
@DS("db_a") public interface AEntityMapper extends BaseMapper<AEntity> { void getByName(@Param("name")String name); }
BEntityMapper.java
@DS("db_b") public interface BEntityMapper extends BaseMapper<BEntity> { void getByName(@Param("name")String name); }
BEntityServiceImpl.java
public class AEntityServiceImpl extends ServiceImpl<AEntityMapper, AEntity> implements IAEntityService { @Resource private IBEntityService bEntityService; @Transactional(rollbackFor={Exception.class}) @Override public void getFromBEntity(String name){ bEntityService.getByName(name); } }
在呼叫getFromBEntity方法時,會報錯:db_a.b_entity不存在,需要將@Transactional註解刪掉,再次測試後可以查出資料
最新評論