【发布时间】:2012-06-18 18:29:01
【问题描述】:
【问题讨论】:
标签: database transactions neo4j
【问题讨论】:
标签: database transactions neo4j
应该说所有的变异操作都应该在一个事务中执行。变异操作是诸如创建或更新节点/关系,或将内容添加到索引之类的东西。
如果您直接使用 Java API(即不是 REST API),那么您必须将每个创建或更新方法包装在一个事务中。
这是一个创建和索引节点的示例,包装在事务中:
https://github.com/espeed/bulbs/blob/master/bulbs/neo4jserver/gremlin.groovy#L11
请注意,上面的代码是 Neo4j Java API,但它正在 Groovy 脚本中使用。
您可以通过 Neo4j Server Gremlin-Groovy 插件执行 Groovy 脚本。这意味着您可以通过 REST 访问整个 Neo4j Java API。
【讨论】:
我认为这是一个小错字,最好作为该部分的标题阅读:
在事务中封装变异操作
这里的操作是指对模型进行修改的任何访问(例如,在链接的示例中添加新节点或关系)。为了保持数据库的一致性,您将这些修改操作包装在一个事务中,以便全部成功或不成功,避免使数据库处于不一致状态
【讨论】:
感谢您提出,更新了措辞,请参阅https://github.com/neo4j/community/commit/ba94448d495e6d9fec8877bd32bd5edf0936b621
这样更好吗?
【讨论】: