首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >neo4j事务不回滚

neo4j事务不回滚
EN

Stack Overflow用户
提问于 2015-03-28 16:19:59
回答 1查看 472关注 0票数 0

我在java中使用neo4j 2.1.7。

代码语言:javascript
复制
    try(Transaction transaction = this.graphDatabaseService.beginTx())
    {
        Node user = this.graphDatabaseService.createNode();
        user.setProperty("userId", userId);
        transaction.failure();
    }

因此,我将获得GraphDatabaseService的对象,并创建一个新事务并将其标记为回滚。根据它们的javadocs:

空洞失效() 将此事务标记为失败,这意味着在调用close()时它将无条件回滚。一旦调用了此方法,事后调用success()并不重要--事务仍将回滚。

但是我看到,无论什么情况,节点都会被创建。我试过throwing an exception。我也尝试过not calling transaction.success()。不过,我仍然看到这些更改被提交,而不是回滚。我不确定这种行为,我想要一个解释。谢谢。

如果您必须知道,我正在尝试使用嵌套事务构建commit()函数,以便如果任何操作在内部事务中失败,父事务也必须失败。然而,在这个过程中,我发现无论我做什么,事务都是被提交的。

更新1:

嵌入式版本的neo4j运行良好。其余的版本正在引起这个麻烦。我用这个包休息:

代码语言:javascript
复制
<dependency>
    <groupId>org.neo4j</groupId>
    <artifactId>neo4j-rest-graphdb</artifactId>
    <version>2.0.1</version>
</dependency>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-28 18:16:31

没有事务超过REST,至少对于旧版本是这样的。

只有HTTP上的事务具有新的Cypher端点。

这个库已经停止,我建议您使用例如JDBC驱动程序或Spring数据REST附带的新实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29319464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档