2014-12-03 101 views
0

我有一個非常罕見的問題。我有一個插入到NEO4j數據庫的Java程序。該程序在我的local_host環境中工作正常,但是當我將其部署到服務器(neo4j所在的位置)時,數據庫未更新。這是我做的Neo4J結果沒有更新

//First delete the DB 
ExecutionEngine engine = new ExecutionEngine(db);  
engine.execute("MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE n,r"); 

Transaction tx = db.beginTx(); 
//insertion here 
tx.success(); 
tx.close(); 

//look if it was correctly updated 
System.out.println("NODES: " + engine.execute("START n=node(*) RETURN  count(n)").dumpToString()); 
System.out.println("RELATIONSHIPS: " +engine.execute("START r=relationship(*) RETURN count(r)").dumpToString()); 
db.shutdown(); 

如果我查看日誌一切正常

UPDATED 
NODES: +----------+ 
| count(n) | 
+----------+ 
| 99  | 
+----------+ 
1 row 

RELATIONSHIPS: +----------+ 
| count(r) | 
+----------+ 
| 76  | 
+----------+ 
1 row 

但是當我通過瀏覽器看到的Neo4j Db的什麼也沒發生以前的結果是還有!請注意,如果我在我的Local_host環境中運行相同程序行爲是相同的,但在這個場合它是正確更新

預先感謝您

+1

請更新您的問題,包括這些問題的答案 - 但我認爲你會追蹤這些下來找到自己的解決方案:你的web版本指向哪個數據庫目錄?當你在代碼中創建ExecutionEngine時,它是否與嵌入式數據庫綁定?如果是這樣,那麼路徑是什麼?如果不是,REST端點是什麼?我的猜測是,在某個地方,你指向了錯誤的數據庫。所以更新正在發生,但不是你期望看到它的地方。 – FrobberOfBits 2014-12-03 16:54:28

回答

1

謝謝你的建議,我解決問題是這個問題是通向Neo4J DB的路線。當您在Neo4J數據庫所在的同一實例中運行neo4j程序時,必須指定文件夾的路徑而不是IP。它實際上正在創建一個由IP命名的新neo4j。

我用

public final static String CONEXION_NEO4J = "/folder/of/neo4jdb/database.db"; 
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(CONEXION_NEO4J) 

,而不是

public final static String CONEXION_NEO4J = "//X.X.X.X/neo4j/database.db"; 
GraphDatabaseService db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(CONEXION_NEO4J) 

問候