在Neo4j数据库中重新创建参考节点

4

我不小心删除了新图中的节点0,这是我的参考节点,因此之后对 getReferenceNode() 的调用将失败。我搜索了Neo4j源代码并发现可以使用以下代码进行重建:

GraphDatabaseService graphDb = new EmbeddedGraphDatabase("mytestdb");    
((EmbeddedGraphDatabase) graphDb).getConfig().getGraphDbModule().createNewReferenceNode();

我是否错过了重新创建参考节点的更好方法?当我运行此代码时,有时它的ID为0,有时为5,这取决于存在哪些其他节点。此外,getConfig()周围的注释表明它可能会在未来的版本中被删除。


这个有什么使用场景?不同的ID不应该是问题,只需将节点与实际参考节点进行比较,不要检查ID 0即可。 - nawroth
没问题,我可以使用任何节点作为我的参考节点。我希望有一个类似于现有的getReferenceNode()方法的setReferenceNode()方法,或者可能是我错过了某些方法,因为我上面设置的方式听起来好像在未来的neo4j版本中将无法调用getConfig()。 - unremarkable
如果那种方法被取消了,我相信肯定会有其他的替代方法。 - nawroth
1个回答

3

虽然你的提问已经有一段时间了,但是有关Neo4j GitHub问题中引用节点的讨论最近还是有过的(链接)。总的来说,Neo Technology员工Peter Neubauer讨论了删除引用节点概念或添加setReferenceNode()API调用两种方案。

那个讨论并没有得出太多结论,但是直接回答你的问题,目前你并没有错过更好的重新创建引用节点的方法——希望很快就会有一个更好的方法问世!


时间又过去了一些,我遇到了404错误... :/ - Marsellus Wallace
1
参考节点已在2.0.0.RC1中被移除。 - ptikobj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接