使用spring data JPA 保存数据时报错
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is java.lang.IllegalStateException: Already value [org.springframework.jdbc.datasource.ConnectionHolder@678c166f] for key [{
CreateTime:"2020-12-02 08:59:18",
ActiveCount:2,
PoolingCount:1,
CreateCount:3,
DestroyCount:0,
CloseCount:45,
ConnectCount:47,
Connections:[
{ID:221256499, ConnectTime:"2020-12-02 08:59:19", UseCount:21, LastActiveTime:"2020-12-02 09:19:58"}
]
}] bound to thread [http-nio-8082-exec-3]
由于项目使用了多个数据源,每个数据源都有自己的事务管理器,mybatis和JPA的事务管理器也是独立的,修改service方法对应的 transactionManager ,即可解决问题。
我这里是将Mybatis的事务管理器修改为JPA的事务管理器,程序正常执行。
/**
* 根据规则id逻辑删除规则
* @param ruleId 规则id
* @param request
*/
@Override
@Transactional(transactionManager = "terminalTxManager",rollbackFor = Exception.class)
public E6Wrapper deleteRuleByRuleId(Integer ruleId,Integer userId ,HttpServletRequest request) {
...略
return E6WrapperUtil.ok();
}