您能否告诉我如何构建下表/类以避免循环引用?我在“学士”学位课程中定义了以下内容:
@Entity
public class Bachelor {
...
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "fk_bachelor")
private Study study;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "fk_prior")
private List<Study> priorStudies;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "fk_exchange")
private List<Study> exchangeStudies;
...
}
@Entity
class Study {
private String title;
private String placeOfStudy;
etc
...
}
这是代表一个学士学位,该学士学位有一个学习记录,以获取学士学位的详细信息。如果申请人指定他们已经完成了学士学位,那么他们可以指定一个或多个先前和交换研究。学士学位加一个先前学位结果的示例如下:
学士 编号 | fk_单身汉 10003 | 10000
学习 编号 | 标题 | fk_prior 10000 | 文学学士 | 10001 | 学位 | 10003
这似乎工作正常,除非我需要从表中删除项目。我还收到有关编译器循环引用的警告。所以我不能先从学士中删除,因为学习引用了fk_prior,我不能先从学习中删除,因为学士引用了它。我猜这不是像这样构造它的好习惯。