首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除的节点在Neo4j中重新出现

删除的节点在Neo4j中重新出现
EN

Stack Overflow用户
提问于 2011-12-02 16:50:46
回答 1查看 457关注 0票数 1

我刚刚开始使用Neo4j并运行"Hello“类型的示例。

我创建一个新数据库并打印出节点数,即1(因为创建数据库时似乎存在默认节点)。

我创建一个节点并将其添加到图中。该图表报告说,现在有两个节点-好的。

然后我再次删除节点,图表报告有一个节点- OK。

然后我关闭了数据库。

但是,当我再次运行相同的代码时(不删除数据库文件)。现在它报告说最初有两个节点。不是1-2-1,而是2-3-2。这只发生一次--在第一次运行之后,它总是报告2-3-2。

为什么我删除的节点会重新出现,但仅仅是第一次出现?

代码如下:

代码语言:javascript
复制
package com.foo.neo.example;

import org.neo4j.graphdb.*;
import org.neo4j.kernel.EmbeddedGraphDatabase;

public class Deleting
{
    static GraphDatabaseService graphDb;

    public static void main(String[] args)
    {
        graphDb = new EmbeddedGraphDatabase("data");
        System.out.println("STARTED");

        printNodeCount();

        Node firstNode;

        Transaction tx = graphDb.beginTx();
        try
        {
            firstNode = graphDb.createNode();
            tx.success();
        }
        finally
        {
            tx.finish();
        }

        printNodeCount();

        // delete the data again
        tx = graphDb.beginTx();
        try
        {
            firstNode.delete();
            tx.success();
        }
        finally
        {
            tx.finish();
        }

        printNodeCount();
        graphDb.shutdown();
    }

    private static void printNodeCount()
    {
        long nodecount = ((EmbeddedGraphDatabase) graphDb).getConfig()
                .getGraphDbModule().getNodeManager()
                .getNumberOfIdsInUse(Node.class);
        System.out.println("Node count = " + nodecount);
    }
}

和产出:

代码语言:javascript
复制
STARTED
Node count = 1
Node count = 2
Node count = 1

第二次(及随后的)运行:

代码语言:javascript
复制
STARTED
Node count = 2
Node count = 3
Node count = 2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-03 00:23:34

你的代码是正确的。

但是getNumberOfIdsInUse()不是节点(或关系)的数量,而是分配的id的数量,它们之间可能有未使用的间隔。Id重用不会自动发生,但必须启用。

如果计数器仍然报告错误的数字,您可以尝试使用graphDb.getAllNodes()并递增计数器来计数节点吗?

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

https://stackoverflow.com/questions/8359735

复制
相关文章

相似问题

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