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

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

07-24 19:42