首页 文章

Transactional AbstractRoutingDataSource EntityManager

提问于
浏览
0

我有两个不同的PlatformTransactionManager数据源,LocalContainerEntityManagerFactoryBean

我有RoutingDataSource类,它扩展org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource来为每个PlatformTransactionManager路由正确的数据源 .

我使用org.springframework.transaction.annotation.Transactional作为@Transactional(value =“reportingDatasource”)的管理器方法已经取消了

我在我的存储库中有javax.persistence.EntityManager声明来执行一些查询 .

该EntityManager声明期望PersistenceContext具有如下所述的unitName来标识不同的数据源 . 有没有办法使用一个EntityManager声明,其中Transactional将根据指定的值路由到预期的数据源

@PersistenceContext(unitName =“master”)private EntityManager em;

@PersistenceContext(unitName =“reporing”)private EntityManager reportEm;

如果我没有指定unitName,则抛出此错误“没有类型为'javax.persistence.EntityManagerFactory'的限定bean可用:预期单个匹配bean但找到2”

1 回答

相关问题