Java Spring多个@Transactional数据源
Java Spring多个@Transactional数据源,java,spring,jpa,transactional,Java,Spring,Jpa,Transactional,在我的服务层中,我可以使用@Transactional(name=“transactionManager2”)确定如果我有多个事务管理器,我使用哪个事务管理器 您可以使用以下命令指定要与@Transactional一起使用的tx管理器: 指定属性的限定符值 交易 可用于确定目标 事务管理器,与 的限定符值(或bean名称) 特定的平台TransactionManager bean定义 例如: @Transactional("txManager1"); 或者,您可以使用更显式的Transacti
在我的服务层中,我可以使用
@Transactional(name=“transactionManager2”)代码>确定如果我有多个事务管理器,我使用哪个事务管理器 您可以使用以下命令指定要与@Transactional
一起使用的tx管理器:
指定属性的限定符值
交易
可用于确定目标
事务管理器,与
的限定符值(或bean名称)
特定的平台TransactionManager
bean定义
例如:
@Transactional("txManager1");
或者,您可以使用更显式的TransactionProxyFactoryBean
,这使您能够更细粒度地控制哪些对象由哪些tx管理器代理。这仍然使用注释,但它不会自动检测bean,而是在逐个bean的基础上显式配置的
这通常不是一个问题,但是拥有多个事务管理器是不明智的,除非您有很好的理由这样做。如果您发现自己需要两个tx管理器,通常最好看看是否可以使用一个。例如,如果在应用服务器中配置了两个数据源,则可以将这两个数据源合并到一个JtaTransactionManager中,而不是两个独立的JpaTransactionManager
或datasourceTransactionManager
更多关于需要多个事务管理器的信息。您可能试图按顺序执行嵌套或单独的事务,然后可以使用不同的传播设置。您可以使用单事务管理器进行配置,请参见。为什么您认为您需要两个事务管理器?请评论我在@skaffman的帖子,如果我使用DataSourceTransactionManager,如何将两个数据源关联到同一个事务管理器?@skaffman,我正在使用jdbc模板和org.apache.commons.dbcp.BasicDataSource,我应该如何让transactionManager用于两个数据源?谢谢again@tsunade21:你提出了一个新问题。