在Neo4J vs2中标记节点的正确做法

时间:2013-12-06 13:00:37

标签: java neo4j

我在Java项目中使用 Neo4J 2.0 beta 。我需要知道标记节点的正确做法。例如,如果我需要将许多节点标记为“用户”节点,并且我还需要确保只存在一个具有该用户ID的节点,则以下代码是正确的:

我班上的某个地方我定义了标签

public final static Label USER = DynamicLabel.label("User");

通过使用唯一ID创建唯一节点,如果节点是新节点,我会附加一个标签,例如:解释该节点是user

GraphDatabaseService graphDb;
try (Transaction tx = graphDb.beginTx()) {
      user_factory = new UniqueFactory.UniqueNodeFactory(graphDb, "users") {
          @Override
          protected void initialize(Node created, Map<String, Object> properties) {
              created.setProperty("id", properties.get("id"));
              created.addLabel(USER);//load of static label
      };
      tx.success();
}

然后,在课堂的某个地方:

String user_id = "an unique id";
UniqueFactory<Node> user_factory = ...// Initied by the code above.
try (Transaction tx = graphDB().beginTx()){            
        Node node = user_factory.getOrCreate("id", user_id);   
        tx.success();
}

以前的代码是否正确或UniqueFactory中的标签使用是否未被推荐?

PS:我问这个是因为我们在标签检索方面遇到了很多问题。

0 个答案:

没有答案