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;
	
}


posted @ 2017-06-16 16:29  車輪の唄  阅读(10)  评论(0)    收藏  举报  来源