【问题标题】:Transactional+AbstractRoutingDataSource+EntityManagerTransactional+AbstractRoutingDataSource+EntityManager
【发布时间】: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


    【解决方案1】:
    猜你喜欢
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多