Java Neo4j Spring ogm导致跟随者堆栈溢出
尝试实现简单的社交网络概念:追随者+追随者。所有这些都只是相互关联的账户。使用Neo4j和弹簧护套Java Neo4j Spring ogm导致跟随者堆栈溢出,java,spring,spring-boot,neo4j,neo4j-ogm,Java,Spring,Spring Boot,Neo4j,Neo4j Ogm,尝试实现简单的社交网络概念:追随者+追随者。所有这些都只是相互关联的账户。使用Neo4j和弹簧护套 'org.springframework.boot' version '2.2.4.RELEASE' 'org.springframework.boot:spring-boot-starter-data-neo4j' 账户类 @NodeEntity public class Account { @Id private String pk; @Relationship(type =
'org.springframework.boot' version '2.2.4.RELEASE'
'org.springframework.boot:spring-boot-starter-data-neo4j'
账户类
@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;
}
@NodeEntity
公共类帐户{
@身份证
私有字符串pk;
@关系(type=“FOLLOWS”,direction=Relationship.INCOMING)
私人设置的追随者;
@关系(type=“FOLLOWS”,direction=Relationship.OUTGOING)
私人设置的追随者;
}
使用standart springcrudepository
(或Neo4JRepository
,没有区别)我经常在使用帐户时遇到堆栈溢出。最简单的情况是A
紧跟B
和B
紧跟A
将导致findById()的SOF。我知道它有smth。与获取深度有关,但它默认为1,这意味着我应该获取帐户的追随者
和追随者
,但它们的关系应该为空。在添加方面,关系正常工作:我可以通过添加到适当的集合
从任何一端连接帐户,图形结果完全符合我的预期,但获取不起作用
主要问题:我做错了什么,理解错了什么,怎样才能正确实施这种关系
我尝试使用深度为0的session.load()
,当然没有SOF,但这并不是我所需要的。默认深度1
应该提供我所需要的,但我想我误解了这个概念
和extra:有没有办法为整个应用程序配置默认深度?没有手动使用会话
,从而重新实现所有基本操作。最后,得到了它。真正的问题不在抓取中,而是在抓取过程中的某个地方对equals()
和hashcode()
进行内部调用。由于我将lombok与@Data
一起使用,所有属性都在这些方法中分配,从而导致SOF
在类的注释中添加@EqualsAndHashCode(exclude={“followers”,“followers”})
修复了这个问题,depth=1现在起作用了。最后,得到了它。真正的问题不在抓取中,而是在抓取过程中的某个地方对equals()
和hashcode()
进行内部调用。由于我将lombok与@Data
一起使用,所有属性都在这些方法中分配,从而导致SOF
将@EqualsAndHashCode(exclude={“followers”,“followers”})
添加到类的注释中修复了这个问题,并且depth=1现在可以工作了