0

私はこのようなNodeEntityを持っています:

@NodeEntity
public class User {

    @GraphId
    private Long id;

    private String name;

    @Fetch
    @RelatedToVia
    private Set<Rel> rels;

    public Rel connectTo(User u, String type) {
        if (this.rels == null) 
            this.rels = new HashSet<Rel>();
        Rel rel = new Rel(this, u, type);
        this.rels.add(rel);
        return rel;
    }
}

およびRelationshipEntity:

@RelationshipEntity(type="REL")
public class Rel {

    @GraphId
    private Long id;
    @Fetch
    @StartNode
    private User start;
    @Fetch
    @EndNode
    private User end;

    @RelationshipType
    private String type;

    public Rel(){}
    public Rel(User start, User end, String type) {
        this.start = start;
        this.end = end;
        this.type = type;
    }
}

しかし、ユーザーを読み込もうとすると、関係は空になります。

User neo = new User();
neo.setName("Neo");

User trinity = new User();
trinity.setName("Trinity");
this.userRepository.save(trinity);

neo.connectTo(trinity, "LOVES");

this.userRepository.save(neo);

User user = this.userRepository.findOne(neo.getId());
// expected:<1> but was:<0>
Assert.assertEquals(1, user.getRels().size());

このノードに関連する関係を熱心にロードできますか?また、どのように何かを見逃しましたか?

前もって感謝します!

4

1 に答える 1

0

同じ関係タイプを使用してみてください。あなたの関係エンティティは type="REL" を与えますが、"LOVES" を neo.connectTo() メソッドに渡します。

于 2013-08-26T04:19:56.157 に答える