0

クラストピックに @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 に関係を追加しても、同じ動作が発生します。

何か案は?

4

2 に答える 2

1

a を実行した後、 atemplate.saveを実行して、template.fetch(myTopic.getMadeOf())関連するすべてのトピックを一度に取得し、通常の方法でmyTopicを使用できます

于 2013-04-30T04:30:38.323 に答える
0

単純なマッピングが有効になっているデフォルトでは、すべての関係が遅延フェッチされます。それらを熱心にロードしたい場合は、関係に@Fetchを使用します (つまり、madeOf と partOf)。

@Fetch
@RelatedTo(type = "MADE_OF", direction = Direction.OUTGOING)
public Set<Topic> madeOf;
于 2013-04-30T10:49:53.803 に答える