【发布时间】:2020-02-12 12:13:13
【问题描述】:
尝试实现简单的社交网络概念:关注者+关注者。所有这些都只是相互关联的帐户。使用 Neo4j 和 Spring boot。
'org.springframework.boot' version '2.2.4.RELEASE'
'org.springframework.boot:spring-boot-starter-data-neo4j'
Account.class
@NodeEntity
public class Account {
@Id
private String pk;
@Relationship(type = "FOLLOWS", direction = Relationship.INCOMING)
private Set<Account> followers;
@Relationship(type = "FOLLOWS", direction = Relationship.OUTGOING)
private Set<Account> followings;
}
使用标准弹簧CrudRepository(或Neo4JRepository,没有区别)我经常让stackoverflows 处理帐户。 A 跟在 B 之后,B 跟在 A 之后的最简单情况将导致 findById() 的 SOF。我知道它有smth。与获取深度有关,但默认为 1,这意味着我应该获得帐户的 followers 和 followings,但他们的关系应该为空。这些关系在添加方面正常工作:我可以通过添加到适当的Set 来从任何一端连接帐户,并且图表结果完全符合我的意图,但提取不起作用..
主要问题:我在做什么和理解有误,如何才能正确实现这种关系?
我尝试使用深度为 0 的 session.load(),当然没有 SOF,但这并不是我所需要的。默认深度1 应该提供我所需要的,但我想我误解了这个概念?
还有额外的:有没有办法为整个应用程序配置默认深度?无需手动使用session,从而重新实现所有基本操作..
【问题讨论】:
标签: java spring spring-boot neo4j neo4j-ogm