java - Neo4j + Postgres 共同事务

标签 java spring postgresql neo4j transactions

我有一个使用 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/

相关文章:

java - android fragment 中的textview中不显示全文

java - 使用 Java 从类数组创建类的新实例

java - BeanNotOfRequiredTypeException : Bean named X is expected to be of type X but was actually of type 'com. sun.proxy.$Proxy

java - 在每个服务实现的数据库中链接 Java 微服务中的数据

postgresql - 如何维护具有一对多关系的表上的记录历史记录?

mysql - 从模式中删除一对多关系

java - 如何在 Wildfly 中将外部属性文件加载到 Spring Boot

java - Json从C#到JAVA

java - DB 事务分组 - Spring,java - 寻找设计思路

python - 如何防止 psycopg2 锁定表