有时候我必须缺少关于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)
})
}
答案 0 :(得分:1)
在将事务设置为状态成功后,必须使用命令tx.close()
关闭已打开的事务。我不知道确切的scala语法,但最好将整个块放入try / catch并最终关闭finally块中的事务。
以下是Java的文档:https://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/graphdb/Transaction.html