Neo4j OGM - 保存与深度1的关系,只关系

时间:2016-12-12 23:07:08

标签: neo4j spring-data-neo4j-4 neo4j-ogm

我尝试在2个节点A和B之间创建关系。

可能有数百个连接,B可能是新创建的节点。

我现在正在做的方法是加载深度为1的A,将B添加为A的子级,然后保存深度为1的A

一些示例Groovy代码,

def B = neo4jOperations.save(new B(), 0)
def A = neo4jOperations.load(A, idOfA, 1)
A.relationshipList().add(B)
neo4jOperations.save(A, 1) // This turns out to be slow since it is saving all the @EndNode of A, while it doesn't need to

但是,由于neo4j加载并节省了不必要的节点和关系,因此非常慢。我只对将一个节点即B添加到A

的现有关系感兴趣

我是否打了反模式?或者这是它应该工作的方式?我有更快的方法吗?

1 个答案:

答案 0 :(得分:1)

目前,OGM将加载A的所有关系,但如果已经保留,则不会保存它们。它不应该这么慢(你使用哪个版本?)。解决方法/黑客是尝试 new Session,将A加载到深度0,然后将B添加到它并保存。请确保您不会将此会话用于任何进一步的工作,因为事情可能会出现严重错误。更好的方法是向我们发送一些示例代码并在https://github.com/neo4j/neo4j-ogm

打开一个问题