Führen Sie einfach einen GraphDatabaseService.shutdown () aus Nach der Rückgabe entfernen Sie die Datenbankdateien (mit dem Code dies ).
Sie können auch getAllNodes () verwenden, um zu iterieren Löschen Sie über alle Knoten ihre Beziehungen und die Knoten selbst. Vielleicht vermeiden Sie den Referenzknoten zu löschen.
Wenn Ihr Anwendungsfall testet, können Sie das ImpermanentGraphDatabase , wodurch die Datenbank nach dem Herunterfahren gelöscht wird.
Um ImpermanentGraphDatabase zu verwenden, fügen Sie die neo4j-Kernel Tests jar / dependency zu Ihrem Projekt hinzu. Suchen Sie nach der Datei mit dem Namen "tests.jar" auf maven central .
Ich denke, der einfachste Weg ist, ein Verzeichnis mit neo4j-Datenbank zu löschen. Ich mache es in meinen Junit-Tests, nachdem ich alle Tests durchgeführt habe. Hier ist eine Funktion, die ich verwende, wo Datei das Verzeichnis neo4j ist:
%Vor%Ich glaube ich habe es auf neo4j Wiki gefunden. Ich habe in dieser Diskussion eine andere Lösung gefunden. Sie können die Blueprint-API verwenden, die die Methode clear bereitstellt.
Wie Nawroth sagte, sollten Sie zum Testen die ImpermanentGraphDatabase verwenden. Es behebt praktisch alle Ihre Probleme automatisch.
Wenn Sie nicht testen, gibt es zwei Möglichkeiten. Ich habe generell zwei Methoden zur Verfügung. Einer ist die clearDB-Methode, in der ich den DB-Pfad rekursiv lösche. Ich benutze dafür die FileUtils-Bibliothek und es ist eine einzelne Codezeile:
%Vor%Der andere ist, jeden Knoten in der Datenbank zu entfernen, mit Ausnahme der REFERENCE NODE, mit der Methode removeAllNodes. Dazu gibt es eine einfache Abfrage, die Sie so ausführen:
%Vor%Wichtig ist, dass Sie die clearDB-Methode aufrufen müssen, BEVOR Sie ein neues EmbeddedGraphDatabase-Objekt erstellen. Die removeAllNodes-Methode wird aufgerufen, nachdem Sie dieses Objekt erstellt haben.
Tags und Links neo4j