Hibernate获取数据java.lang.StackOverflowError
原因:因为在重写toString()方法时,把关联的属性也放入到toString方法中了,去掉就可以了
@Entity
@Table(name = "test.stu")
@Data
@NoArgsConstructor
public class Student {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer number;
private String name;
private Integer age;
private Integer classid;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "classid" , referencedColumnName = "classid", insertable = false, updatable = false)
private Clazz clazz;
}在clazz类中的toString方法中去掉stu属性
@Entity
@Table(name = "test.cla")
@Data
@NoArgsConstructor
@ToString(exclude = "stu")
public class Clazz implements Serializable {
private static final long serialVersionUID = 5451999649657651654L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private Integer classid;
@OneToMany(fetch=FetchType.EAGER, cascade=CascadeType.ALL)
@JoinColumn(name = "classid", referencedColumnName = "classid")
private List<Student> stu;
}

浙公网安备 33010602011771号