Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Neo4J vs2中标记节点的正确做法_Java_Neo4j - Fatal编程技术网

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

Java Neo4J vs2中标记节点的正确做法,java,neo4j,Java,Neo4j,我正在Java项目中使用Neo4J 2.0测试版。我需要知道标记节点的正确做法。例如,如果我需要将许多节点标记为“用户”节点,并且我还需要确保只有一个具有该用户id的节点存在,那么以下代码是否正确: 我在班上的某个地方定义了标签 public final static Label USER = DynamicLabel.label("User"); 通过使用唯一id创建唯一节点,如果该节点是新的,我会在其上附加标签,例如,解释该节点是用户 GraphDatabaseService graphD

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

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

public final static Label USER = DynamicLabel.label("User");
通过使用唯一id创建唯一节点,如果该节点是新的,我会在其上附加标签,例如,解释该节点是
用户

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();
}
GraphDatabaseService graphDb;
try(事务tx=graphDb.beginTx()){
用户工厂=新的UniqueFactory.UniqueNodeFactory(图B,“用户”){
@凌驾
受保护的void初始化(创建节点,映射属性){
created.setProperty(“id”,properties.get(“id”);
created.addLabel(用户);//加载静态标签
};
成功();
}
然后,在课堂上的某个地方:

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();
}
String user\u id=“唯一id”;
UniqueFactory用户_factory=…//由上述代码初始化。
try(事务tx=graphDB().beginTx()){
Node Node=user\u factory.getOrCreate(“id”,user\u id);
成功();
}
以前的代码是否正确,或者不建议在
UniqueFactory中使用标签


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

既然标签是2.0 beta版的一项新功能,我建议你问Neo4j它们打算如何使用,而不是现在它们的行为,因为我希望能及时得到很多修复。我知道它们只为公司提供支持。@PeterLawrey-Neo4j 2.0取决于RC1和这是一个恰当的问题,Neo4j的员工在所有里程碑构建过程中对与v2.0相关的所有事情都非常积极。@mat_boy我想他们会为任何付费的人提供支持。大多数公司也会尽最大努力提供免费服务。根据David的评论,这是一个所以,我应该删除这个问题吗?