gpt4 book ai didi

java - 添加关系后需要再次找到节点实体(neo4j/java/spring)

转载 作者:行者123 更新时间:2023-12-01 14:38:03 30 4
gpt4 key购买 nike

我已将 @NodeEntity 注释用于类主题。主题中有以下内容:(为了简洁起见,我已经缩小了错误范围,因此我只编写了代码的相关部分。)

public class Topic {

...

@RelatedTo(type = "MADE_OF", direction = Direction.OUTGOING)
public Set<Topic> madeOf;

@RelatedTo(type = "MADE_OF", direction = Direction.INCOMING)
public Set<Topic> partOf;

}

现在,这会在其他地方实例化,例如:

    Topic myTopic = new Topic();
madeOf.addAll(some list of topics with empty partOf already in the graph);
myTopic = template.save(myTopic());

现在,如果我检查 myTopic.madeOf 中的主题集,它们都是空的,即使它们都应该包含 myTopic。或者,如果我这样做:

    Topic myTopic = new Topic();
madeOf.addAll(some list of topics with empty partOf already in the graph);
myTopic = template.save(myTopic());
myTopic = template.findOne(myTopic());

现在检查同样的事情,一切都正常。显然,一遍又一遍地找到这个实体会大大减慢我的代码速度。即使我使用 template.createRelationshipBetween(...) 显式将关系添加到 Neo4JTemplate,也会发生相同的行为。

有什么想法吗?

最佳答案

执行 template.save 后,您可以执行 template.fetch(myTopic.getMadeOf()) 一次性获取所有相关主题,然后使用myTopic 以通常的方式

关于java - 添加关系后需要再次找到节点实体(neo4j/java/spring),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16291145/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com