1

在阅读 Neo4j 手册时发现了这个,特别是在这里,我找到了这句话:

“所有变异事务都必须在事务中执行。”

显然,变异交易不仅仅是后一种交易类型。有人可以帮助澄清这些事物与数据库之间的关系吗?

4

3 回答 3

2

应该说所有的变异操作都应该在一个事务中执行。变异操作是诸如创建或更新节点/关系或将内容添加到索引之类的东西。

如果您直接使用 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。

于 2012-06-19T02:09:21.890 回答
1

我认为这是一个小错字,最好作为该部分的标题阅读:

在事务中包装变异操作

这里的操作是指对模型进行修改的任何访问(例如,在链接的示例中添加新节点或关系)。为了保持数据库的一致性,您将这些修改操作包装在事务中,以便全部成功或不成功,避免使数据库处于不一致状态

于 2012-06-18T18:38:49.183 回答
1

感谢您提出,更新了措辞,请参阅https://github.com/neo4j/community/commit/ba94448d495e6d9fec8877bd32bd5edf0936b621

那个更好吗?

于 2012-06-19T13:51:44.113 回答