我有一个非常罕见的问题。我有一个插入A NEO4j数据库的java程序。该程序在我的local_host环境中运行正常,但是当我将其部署到服务器(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环境上运行相同的程序,行为是相同的,但在这种情况下正确更新
提前谢谢
答案 0 :(得分:1)
感谢您的建议我解决了这个问题。问题是通往Neo4J DB的路径。当您在Neo4J DB所在的同一实例中运行neo4j程序时,您必须指定文件夹的路径而不是IP。它实际上正在创建一个新的neo4j,由IP命名。
我用过
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)
此致