Я только начинаю с Neo4j и запускаю примеры типов "Hello World".
Я создаю новую базу данных и распечатываю количество узлов, которое равно 1 (поскольку при создании базы данных создается узел по умолчанию).
Я создаю узел и добавляю его в график. График сообщает, что теперь есть 2 узла - ОК.
Затем я снова удаляю узел, и график сообщает, что есть 1 узел - ОК.
Затем я закрыл базу данных.
Однако , когда я снова запускаю тот же код (без удаления файлов базы данных). теперь он сообщает, что изначально есть 2 узла. Вместо 1-2-1 я получаю 2-3-2. Это происходит только один раз - после первого запуска всегда выдается 2-3-2.
Почему мой удаленный узел появляется снова, но только в первый раз?
Код ниже:
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);
}
}
и вывод:
STARTED
Node count = 1
Node count = 2
Node count = 1
Второй (и последующие) прогоны:
STARTED
Node count = 2
Node count = 3
Node count = 2