2017-01-09 11 views
3

neo4j 3.0が埋め込まれていることがあります。ノードを作成し、いくつかのプロパティを設定し、トランザクションを成功としてマークした後。私はその後、DBを再オープンしますが、ノードはありません!私はここで何が欠けていますか? neo4jのドキュメントはかなり貧弱です。neo4j 3.0 embedded - no noノード

 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) 
     }) 
     } 
+1

トランザクションを閉じるには、 'tx.success()'の後に 'tx.close()'または 'tx.finish()を呼び出さなければならないと思います。それを試すことができますか? –

+0

修正!ありがとうK.E.!答えを提出するのはどうですか? – scalapeno

+0

Perfect - 'tx.close()'または 'tx.finish()'を使いましたか?教えてください。答えを書きます。 –

答えて

1

オープンしたトランザクションは、トランザクションを状態成功に設定した後、コマンドtx.close()で終了する必要があります。私は正確なスカラ構文を知らないが、try/catchに完全ブロックを入れてfinallyブロック内のトランザクションを最後に閉じると良いだろう。 Javaのドキュメントは以下の通りです:https://neo4j.com/docs/java-reference/current/javadocs/org/neo4j/graphdb/Transaction.html