neo4j 3.0 嵌入式 - 无节点

neo4j 3.0 embedded - no nodes

关于嵌入的 neo4j 3.0,我一定会遗漏一些时间。创建节点后,设置一些属性,并将交易标记为成功。然后我重新打开数据库,但是里面没有节点!我在这里错过了什么? neo4j 文档很差。

      val graph1 = {
        val graphDb = new GraphDatabaseFactory()
          .newEmbeddedDatabase(new File("/opt/neo4j/deviceGraphTest" ))
        val tx = graphDb.beginTx()
        val node = graphDb.createNode()
        node.setProperty("name", "kitchen island")
        node.setProperty("bulbType", "incandescent")
        tx.success()
        graphDb.shutdown()
      }

      val graph2 = {
        val graphDb2 = new GraphDatabaseFactory()
          .newEmbeddedDatabase(new File("/opt/neo4j/deviceGraphTest" ))
        val tx2 = graphDb2.beginTx()
        val allNodes = graphDb2.getAllNodes.iterator().toList
        allNodes.foreach(node => {
          printNode(node)
        })
      }

您打开的交易必须在将交易设置为状态成功后使用命令tx.close()关闭。我不知道确切的 scala 语法,但最好将整个块放入 try/catch 并最终在 finally 块中关闭事务。 这是 Java 的文档:https://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/graphdb/Transaction.html