【发布时间】:2021-02-15 05:44:27
【问题描述】:
我想我在 Hibernate 以及我编写实体的方式上做错了,因为当我尝试获取一个包含另一个对象的对象时,他们开始一遍又一遍地互相获取。此外,当调用应该返回字符串中所有字段的 toString 方法时,我遇到了 stackoverflow 错误。
Instructor 只能有一个InstructorDetail 和各种Course,它或多或少地按预期工作,但有些问题。
导师班
@Entity
@Table(name="instructor_table")
public class Instructor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="instructor_id")
private int instructorId;
@Column(name="instructor_name")
private String instructorName;
@OneToOne(mappedBy="instructor", cascade = CascadeType.PERSIST)
private InstructorDetail instructorDetail;
@OneToMany(mappedBy="instructor", cascade = CascadeType.PERSIST)
private List<Course> courses;
InstructorDetail类
@Entity
@Table(name="instructor_detail_table")
public class InstructorDetail {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="instructor_detail_id")
private int instructorDetailId;
@Column(name="instructor_class")
private String instructorDetailClass;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name="instructor_id")
private Instructor instructor;
课程班
@Entity
@Table(name="course_table")
public class Course {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="course_id")
private int courseId;
@Column(name="course_class")
private String course_class;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name="instructor_id")
private Instructor instructor;
【问题讨论】:
-
这可能是由于您的模型
Instructor指的是InstructorDetail,而后者又指的是Instructor。作为解决方案,您可以在InstructorDetail中使用instructor_id -
添加代码示例
标签: java database hibernate jpa spring-data-jpa