如何在Neo4j Node中为java设置节点的属性

时间:2018-04-05 00:53:25

标签: java neo4j

我正在尝试使用java api为Neo4j中的节点设置属性。 目前我正在做如下:

tx.begin();
Node node = db.findNode(label,key,value);
node.setProperty("k",11);
tx.success();

当我再次启动该过程并尝试检索此密钥或查看该特定节点中的值时,我看不到该密钥存在。怎么从这个开始?

1 个答案:

答案 0 :(得分:3)

Transaction.success只有标记交易成功。在调用Transaction.close()之前,事务实际上没有提交。

Transaction JavaDocs声明如下:

  

这是Neo4j中程序化事务的习惯用法   从java 7开始:

try ( Transaction tx = graphDb.beginTx() )  {
    // operations on the graph
    // ...

    tx.success();
}

该习语使用try-with-resources语句来确保在语句退出时自动调用tx.close()(即使由于异常)。您的交易代码也应该遵循。

例如:

try (Transaction tx = db.beginTx()) {
    Node node = db.findNode(label, key, value);
    node.setProperty("k", 11);
    tx.success();
}