我刚刚开始使用新的用于 python 的 neo4j 驱动程序并且完全被事务卡住了。如何检查交易是否成功完成?据我所知,commit
函数不会自动引发任何错误,例如,如果我向它提供了不正确的 Cypher 查询,我不会得到任何信息。
我尝试从对象中读取last_result
参数Session
并想出了类似的东西:
import neo4j.v1 as neo
def db_confirm_transaction_success(session):
try:
w = list(session.last_result)
return True
except neo.CypherError as e:
session.last_result._consumed = True
return False
except neo.ResultError as e:
session.last_result._consumed = True
return False
它有点工作......然而,它确实需要修改私有属性,而且看起来并不正确/正确。必须有一个更简单、更优雅的解决方案。
提前感谢您的帮助。
编辑:只是为了明确Transaction.success
表示事务是否应该提交或回滚。然而,例如,Cypher 错误可以晚于查询的执行时间来识别。