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 注释没有解决我的问题,可能是我用错了。
我有 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 注释没有解决我的问题,可能是我用错了。