【发布时间】:2022-01-23 15:55:49
【问题描述】:
在设置表关系方面需要帮助。 因此,有 2 个实体 - Section 和 Period。 1 Section 有多个 Period,但 1 Period 不属于任何特定 Section。 我按如下方式实现了这种关系:在 Section 上创建了一个带有外部键的附加表 SectionCodes(更多在图表中)
节类:
@Entity
@Table(name = "section")
@AttributeOverride(name = "id", column = @Column(name = "id", nullable = false))
public class Section extends BaseEntity<Integer> {
private String form;
private Integer version;
private List<SectionPeriod> periodCodes;
@Column(name = "form")
public String getForm() { return form; }
public void setForm(String form) { this.form = form;}
@Column(name = "version")
public Integer version() { return version; }
public void setVersion(Integer version) { this.version = version; }
@OneToMany(mappedBy = "section", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
public List<SectionPeriod> getPeriodCodes() {
return periodCodes;
}
public void setPeriodCodes(List<SectionPeriod> periodCodes) {
this.periodCodes = periodCodes;
}
}
节期:
@Entity
@Table(name="section_period")
@AttributeOverride(name = "id", column = @Column(name = "id", nullable = false))
public class SectionPeriod extends BaseEntity<Integer> {
private Integer periodCode;
private Section section;
@Column(name = "period_code")
public Integer getPeriodCode() {
return periodCode;
}
public void setPeriodCode(Integer periodCode) {
this.periodCode = periodCode;
}
@ManyToOne()
@JoinColumn(name = "section_id", referencedColumnName = "id", nullable=false)
public Section getSection () {
return section;
}
public void setSection(Section section) {
this.section = section;
}
}
这很好用,但是有一个问题——原来每个 Section 实体都有一个 SectionPeriod 列表,而 SectionPerid 有一个 Section——所以有循环。 有没有简单的方法来执行此操作?理想情况下,它应该只是 Section 类中的 Period 列表,或者至少是 periodCodes 的 Integer[]。
【问题讨论】: