多対一の関連がある場合を設定したい場合 †たとえば 給与の明細(多)と給与(一)の関連がある場合。 たとえばこんなコードだったとします。
この場合は、明細側のクラスに@ManyToOne?の関連を設定します。やり方は、もともとフィールドにFKがあるので、それをコメントアウト。そのフィールドのGetter/Setterも削除。代わりに、親クラスのフィールドとGetter/Setterを以下のように作成します。 @Entity
@Table(name = "SALARY_DETAIL")
public class SalaryDetail {
@Id
@GeneratedValue
private Integer id;
// @Column(name = "PARENT_ID")
// private Integer parentId;
@ManyToOne
@JoinColumn(name = "PARENT_ID")
private Salary salary;
public Salary getSalary() {
return salary;
}
public void setSalary(Salary salary) {
this.salary = salary;
}
....
}
一対多の関連を設定したい場合 †次は、たとえば給与(一)に対して、明細(多)の関連を設定したいとします。 この場合は、親側のクラスに@OneToMany? の関連を設定します。やり方はフィールドにGetter/Setterを以下のように設定すればOK. @OneToMany(mappedBy="salary") <- mappedBy属性の値salaryは、SalaryDetailクラスのsalaryフィールドってこと
private List<SalaryDetail> salaryDetail;
public List<SalaryDetail> getSalaryDetail() {
return salaryDetail;
}
public void setSalaryDetail(List<SalaryDetail> salaryDetail) {
this.salaryDetail = salaryDetail;
}
この記事は 現在のアクセス:5357 |