gpt4 book ai didi

Spring事务多数据源

转载 作者:行者123 更新时间:2023-12-02 09:53:06 27 4
gpt4 key购买 nike

我有两个数据源,一个用于oracle,另一个用于postgresql,并且两者都用于相同的业务方法。我如何使用 spring @transaction 使这个业务方法具有事务性

商业方法

@Transactional 
public int getData(){

oracleDao.func1();
postgreDao.func2();
}

在配置中我有

<bean id="transactionManagerPostGres" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<bean id="transactionManagerOracle" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactoryOracle"/>
</bean>

最佳答案

为此,您需要一个适当的 JavaEE 容器的支持,该容器支持两阶段提交和 XA 事务。 Oracle 和 Postgres JDBC 驱动程序都支持 XA 事务,所以没关系。

容器通过 JTA API 将其公开给 Spring,Spring 使用 JtaTransactionManager 来使用它。您的应用程序无需更改,它只需将其视为正常事务即可。

如何进行设置完全取决于您的 JavaEE 容器,每个容器都有不同的实现方式。

关于Spring事务多数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7196256/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com