neo4j嵌入scala示例插入节点

时间:2014-03-04 17:05:34

标签: scala neo4j

我已经能够使用批量插入运行neo4j scala示例而没有任何问题。但是,当我尝试在没有不安全的批量插入器的情况下创建节点时,我没有错误但没有插入。

这是示例代码

private def insertNodes(label:String, data: Iterator[Map[String, String]]) = {
    val dynLabel: Label = DynamicLabel.label(label)
    val graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH)
    registerShutdownHook( graphDb )

    val tx = graphDb.beginTx()

      for (item <- data)  {
        val node: Node = graphDb.createNode(dynLabel)
        node.setProperty("item_id", data("item_id"))
        node.setProperty("title", data("title"))
      }

    tx.success
    graphDb.shutdown()

  }

1 个答案:

答案 0 :(得分:0)

您必须提交交易。我不确定正确的scala语法,但你需要类似的东西:

val tx = graphDb.beginTx()

try {
    for (item <- data)  {
        val node: Node = graphDb.createNode(dynLabel)
        node.setProperty("item_id", data("item_id"))
        node.setProperty("title", data("title"))
    }
    tx.success
} catch {
    case e: Exception => tx.failure
} finally {
    tx.close
}