【发布时间】:2018-04-12 02:27:07
【问题描述】:
我有两个具有不同 PlatformTransactionManager、LocalContainerEntityManagerFactoryBean 的数据源
我有 RoutingDataSource 类,它扩展了 org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource 来为每个 PlatformTransactionManager 路由正确的数据源。
我已经注释了管理器方法 org.springframework.transaction.annotation.Transactional as @Transactional(value="reportingDatasource")
我的存储库中有 javax.persistence.EntityManager 声明来执行一些查询。
EntityManager 声明需要 PersistenceContext 和下面提到的 unitName 来识别不同的数据源。有什么方法可以使用一个 EntityManager 声明,其中 Transactional 将根据指定的值路由到预期的数据源
@PersistenceContext(unitName="master") 私人 EntityManager em;
@PersistenceContext(unitName="reporing") 私人 EntityManager 报告Em;
如果我没有指定 unitName,它会抛出此错误“没有可用的 'javax.persistence.EntityManagerFactory' 类型的合格 bean:预期的单个匹配 bean 但找到 2”
【问题讨论】:
标签: spring jpa entitymanager