【问题标题】:Cannot access nodes created using java in neo4j database, neo4j-server.properties issues无法访问在 neo4j 数据库中使用 java 创建的节点,neo4j-server.properties 问题
【发布时间】:2013-10-12 17:26:35
【问题描述】:

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

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

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

(仅供参考,我已经在我的 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 界面创建节点时才会被填充。 将密钥库文件的路径更改为绝对路径也没有工作。

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

【问题讨论】:

  • 您似乎既作为嵌入式实例又作为服务器与数据库进行交互。 (您知道这些差异吗?)暂时忘记服务器及其 webadmin 和配置文件,您是否能够将数据持久化到嵌入式实例并读回?

标签: neo4j


【解决方案1】:

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

tx.close(); 现在是提交或回滚事务的正确方法 - 它会根据您之前是否调用过 tx.success() 执行其中一种。

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

【讨论】:

    【解决方案2】:

    问题是创建的节点没有被提交。要提交节点,我们必须提供 finish()

    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();**
    }
    

    【讨论】:

    • 你应该把tx.success()移到你的catch之前,你不想在特殊情况下称成功。
    【解决方案3】:

    你试过了吗:

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

    【讨论】:

    • 感谢您的回复 Max。是的,我现在试过了,但没有运气,我想问题可能出在这两个属性上:org.neo4j.server.webserver.https.keystore.location=data/keystore org.neo4j.server.webadmin.rrdb.location=data /rrd ..
    • 是的,只设置org.neo4j.server.database.location属性
    • 通过设置 org.neo4j.server.webadmin.data.uri 属性,我在 webadmin 中看不到节点,一旦我对此发表评论并仅设置 org.neo4j.server.database.location webadmin 界面工作整洁。感谢您的回复迈克尔...
    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    相关资源
    最近更新 更多