在neo4j数据库中无法访问使用java创建的节点,neo4j-server.properties问题

时间:2013-10-05 21:16:39

标签: neo4j

我能够在Neo4j数据库上通过Java创建节点和关系。当我尝试在下次运行中访问创建的节点时,我收到此错误:

Exception in thread "main" org.neo4j.graphdb.NotFoundException: Node 27 not found

在webadmin界面中,仪表板显示通过Java创建的节点/关系的数量,但是当我发出此查询时:START n = node(*)RETURN n;我在输出中只得到一个节点。

(仅供参考我在我的Windows机器(本地)中安装了Ne04j,并使用嵌入式数据库java代码创建节点。) 我用来连接db的Java代码:

final String dbpath = "C:\\neo4j-community-1.9.4\\data\\graph.db";      
GraphDatabaseService graphdb =  new GraphDatabaseFactory().newEmbeddedDatabase(dbpath);

我在ne04j-server.properties中使用的设置是:

org.neo4j.server.database.location=/C:/neo4j-community-1.9.4/data/graph.db/
org.neo4j.server.webserver.https.keystore.location=data/keystore
org.neo4j.server.webadmin.rrdb.location=data/rrd
org.neo4j.server.webadmin.data.uri=/C:/neo4j-community-1.9.4/data/graph.db/
org.neo4j.server.webadmin.management.uri=/db/manage/

当我通过Java创建节点时,数据/密钥库文件不会被填充,只有在通过webadmin接口创建节点时才会填充。将密钥库文件的路径更改为绝对路径也没有工作

任何人都可以在这种情况下指出错误,谢谢。

3 个答案:

答案 0 :(得分:2)

问题是创建的节点未提交。要提交节点,我们必须提供完成()

try{
Transaction tx = graphdb.beginTx();
final String dbpath = "/C:/neo4j-community-1.9.4/data/graph.db/";
GraphDatabaseService graphdb =  new GraphDatabaseFactory().newEmbeddedDatabase(dbpath);
Node n1 = graphdb.createNode();
n1.setProperty("type", "company");
n1.setProperty("location", "india");
....
...
}} catch(Exception e){
   tx.failure();
} finally {
   tx.success();
  **tx.finish();**
}

答案 1 :(得分:1)

Ranjith的答案直到最近都是正确的,但tx.finish()现已被弃用。

tx.close(); 现在是提交或回滚事务的正确方法 - 它将执行一个或另一个,具体取决于您之前是否已调用tx.success()

他们对此进行了更改,因此在使用资源块进行尝试时,事务可以自动关闭。

答案 2 :(得分:0)

你试过了吗?

String dbpath = "C:/neo4j-community-1.9.4/data/graph.db";