【发布时间】:2016-02-16 07:55:14
【问题描述】:
我正在尝试使用 py2neo 引入交易。在事务代码的开头,我使用以下命令打开新事务:
tx = graph.cypher.begin()
之后采取了几项行动:
- 在事务开始之前读取一些已经存储在数据库中的数据
- 在此基础上创建新节点
- 创建另一个节点
- 创建这两个节点之间的关系
- 使用 node.match_outgoing(relation_type) 读取该关系
虽然动作 1-4 正确完成,但最后一个在“节点未绑定”上失败。这并不奇怪,因为尚未提交事务并且该节点没有远程对应。不过,我需要这样做。另一种方法需要大量重构和意大利面条式代码。
为了在事务中创建节点,我正在使用来自 cypher 的 CreateStatement。它是这样完成的:
graph = db_connection.get_graph()
statement = CreateStatement(graph)
statement.create(relation)
append_to_current_tx(statement)
因此无法获取处于类绑定状态(瞬态状态)的节点。
有没有办法读取刚刚在尚未提交的事务中创建的节点的关系(但所有关系都是在同一个事务中创建的)。 py2neo中有嵌套事务吗?
【问题讨论】:
标签: python transactions neo4j py2neo