【发布时间】:2018-08-20 04:12:17
【问题描述】:
我有一个非常大的 json 来存储,我把它分成以下五个实体并尝试使用 spring-data-jpa 存储到 h2 数据库中,插入到数据库中工作正常,但是在获取具有主键 ID 的对象时,我收到stackoverflow错误,因为存在循环依赖。
谁能帮我找出问题所在。
顶级
@Entity
@Table(name = "a")
@Data
public class A{
@Id
@Column(name = "a_id")
private String id;
@Column
private String name;
@Column
private String name2;
@Column
private String name3;
@Column
private String name4;
@Column
private String name5;
@OneToMany(cascade = CascadeType.ALL,mappedBy = "a",fetch =
FetchType.EAGER)
@JsonManagedReference
private List<B> b;
}
二等
@Entity
@Table(name = "b")
@Data
public class B{
@Id
@Column(name = "bname")
private String bname;
@Column
private String bVersion;
@OneToMany(cascade = CascadeType.ALL,mappedBy = "b")
@JsonManagedReference
private List<C> cs;
@ManyToOne
@JoinColumn(name = "a_id")
@JsonBackReference
private A a;
}
三等
@Entity
@Data
public class C{
@Id
@Column(name = "cname")
private String cName;
@Column
private String cVersion;
@OneToMany(cascade = CascadeType.ALL,mappedBy = "c")
@JsonManagedReference
private List<D> ds;
@ManyToOne
@JoinColumn(name = "bname")
@JsonBackReference
private B b;
}
第四课
@Entity
@Data
public class D{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="d_id")
private long id;
@Column
private String dName;
@Column
private String dName2;
@ElementCollection
@Column
private List<String> dNames;
@OneToMany(cascade = CascadeType.ALL,mappedBy = "d")
@JsonManagedReference
private List<E> e;
@ManyToOne
@JoinColumn(name = "cname")
@JsonBackReference
private C c;
}
Fifth class
@Entity
@Data
public class E{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "e_id")
private long id;
@Column
private String ename;
@Column
private String eName2;
@ManyToOne
@JoinColumn(name = "e_id")
@JsonBackReference
private E e;
}
【问题讨论】:
-
请发布完整的堆栈跟踪
-
请分享您在获取数据的代码中遇到的异常
标签: java hibernate spring-data-jpa h2