Java JPA 弹簧引导

Java JPA SpringBoot

我有 table A 和 table B,table B 有一个与 table A 相关的 fk。

class实体A

@Entity
@Table(name = "tableA")
public class EntityA {


... ... ...

   @OneToMany(mappedBy="entityA")
   private Set<EntityB> entityBList; 
    
}

class实体B

@Entity
@Table(name = "tableB")
public class EntityB{


... ... ...

   @ManyToOne
   @JoinColumn(name="id_entityA", nullable=false)
   private EntityA entityA;
    
}

但是当我尝试从存储库(从 EntityA)调用 findAll 方法时,我得到:

无法写入JSON: 无限递归

这是您面临的循环依赖问题。

使用@JsonManagedReference 和@JsonBackReference 注释解决这个问题。

参考了解如何使用它。

我已经使用单向关系解决了这个问题。在我的 EntityA 上使用它并擦除 EntityB 上的 属性 entityA。

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id_nfs")
private Set<EntityB> entityBList

@JsonManagedReference 和@JsonBackReference 注释没有解决我的问题,可能是我用错了。