Neo4j-节点的即时负载关系
我有这样一个习惯:Neo4j-节点的即时负载关系,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,我有这样一个习惯: @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)
@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;
}
}
但当我尝试加载用户时,关系是空的:
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());
User neo=新用户();
neo.setName(“neo”);
用户trinity=新用户();
trinity.setName(“trinity”);
this.userRepository.save(trinity);
neo.connectTo(三位一体,“爱”);
this.userRepository.save(neo);
User User=this.userRepository.findOne(neo.getId());
//预期:但是:
Assert.assertEquals(1,user.getRels().size());
我可以急切地加载与此节点相关的关系吗?我是如何遗漏某些内容的
提前谢谢 您可以尝试使用相同的关系类型吗?您的关系实体给出type=“REL”,但您将“LOVES”传递给neo.connectTo()方法
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());