我有一个使用 Neo4j 图形数据库和 Postgresql 关系数据库的 Spring 应用程序。两个数据库都支持事务。
使用具有适当 transactionManager 属性的 Spring @Transactional 注释,我可以在每个数据库上单独处理事务。
但是我有很多方法可以同时在 neo4j 数据库和 postgres 数据库上操作数据。这样的操作应该是事务性的,所以我想“合并”那些单独的事务。我的意思是如果 smth 在一个数据库引擎上失败,那么另一个数据库引擎也应该回滚他自己的事务。
是否有任何库或工具可以帮助我实现该目标?还是我必须自己实现?
提前致谢!
最佳答案
您可以像下面那样使用 ChainedTransactionManager
。
<bean id="transactionManager" class="com.springsource.open.db.ChainedTransactionManager">
<property name="transactionManagers">
<list>
<!-- Postgresql Transaction Manager -->
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager"/>
<!-- Neo4J Transaction Manager -->
<bean class="org.neo4j.ogm.session.transaction.TransactionManager"/>
</list>
</property>
</bean>
关于java - Neo4j + Postgres 共同事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48743582/