当前使用版本(必填,否则不予处理)
版本:3.4.3
该问题是如何引起的?(确定最新版也有问题再提!!!)
1、服务使用多数据源 + 多事务管理器
2、外层方法加上@Transactional注解且指定使用的事务管理器
@Override
@Transactional(rollbackFor = Exception.class, transactionManager = "Manager")
public void save(List<ParamItemDTO> params) {
// 保存
doSaveContextParam(params);
}
3、内部调用updateBatchById方法,但是由于updateBatchById方法有默认的@Transactional注解
@Transactional(rollbackFor = Exception.class)
default boolean updateBatchById(Collection<T> entityList) {
return updateBatchById(entityList, DEFAULT_BATCH_SIZE);
}
所以执行时报错,找不到匹配的事务管理器
重现步骤(如果有就写完整)
报错信息
No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 2
Comment From: miemieYaho
那你为何不cv一份出来去掉注解自己用呢?
Comment From: ApprenticeHou
我也认为官方应该提供一个没有事务的批量保存方法
Comment From: nieqiurong
后面提供单独处理方法.