我有一个Spring应用程序,它使用Neo4j图形数据库和Postgresql关系数据库。两个数据库都支持事务。
使用Spring@Transactional注释和适当的transactionManager属性分别处理每个数据库上的事务没有问题。
但是我有很多方法同时处理neo4j db和postgresdb上的数据。这样的操作应该是事务性的,所以我想“合并”那些单独的事务。我的意思是,如果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/