2016-12-08 172 views
0

我正在使用Neo4j嵌入式数据库的Java API。在Java中新建一个neo4j节点和现有节点之间的关系

虽然将实例保存为Node,但我想从其创建一个Relationship到另一个节点,除了属性(id/key)之外,我没有任何引用。

据我了解,如果我有两个节点,我只想用:

nodeBeingSavedSeparately.createRelationshipTo(
      nodeToHaveRelationshipTo, 
      RELATIONSHIP_TYPE 
); 

但我只是增加一个新节点,我想有另一种已经存在的节点之间的关系,而不是创建一个新节点。

是否有可能从数据库中获取Node的正确实例并在该方法中使用它? 喜欢的东西:

nodeBeingSavedSeparately.createRelationshipTo(
      getNodeByProperty("idPropertyOfTheNodeToHaveRelationshipTo"), 
      RELATIONSHIP_TYPE 
); 

我发现,有一个getNodeById(long);方法,但没有Node.setId(long);方法。我如何设置/获得关系的正确参考?

回答

1

您可以使用findNodefindNodes中的GraphDataBaseService来获取现有节点。

+0

我正在创建一个用户节点node node = createNode(); node.setProperty(“id”,“john”); node.addLabel(Label.label(“users”));'然后在另一个事务尝试通过findNode(Label.label(“users”),“id”,“john”);'但它结束不成功的。请问我做错了什么? – BBerry

+0

我刚刚通过使用另一个属性将其更改为搜索,它似乎工作。是否保留属性名称'id'? – BBerry

+0

如果有多个匹配节点,'findNode'可以抛出一个MultipleFoundException异常。那是怎么回事? – cybersam

相关问题