我使用嵌入式图形数据库作为Java应用程序的一部分.假设我执行某种类型的密码查询,并返回包含节点集合的ExecutionResult.
可以假设这些节点形成连接图.
这些节点中的每一个都有一些关系,我可以使用node.getRelationships(Direction.OUTGOING)来访问这些关系.我的问题是,如果其中一个关系的目标已经出现在执行结果中(即关系是查询模板的一部分),它是否保证Relationship.getEndPoint == Node X.
我想我真正要问的是,当Neo4j中的事务返回一个节点时,它只返回一个对象,并且不同的查询将继续返回对该一个对象的引用,或者它是否继续生成碰巧的新对象请参考相同的数据点?由于Node没有覆盖equalsTo方法,我一直在假设前者,但我希望有人可以告诉我.
节点不是引用等号.您将只获取在不同操作中即时创建的NodeProxy对象.
但是equals()-method实现了id-equality,所以你应该使用它.
n1.equals(n2)
Run Code Online (Sandbox Code Playgroud)
或者如果你保持节点id使用
n1.getId() == n2.getId()
Run Code Online (Sandbox Code Playgroud)