- 追加された行はこの色です。
- 削除された行はこの色です。
// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
**多対一の関連がある場合を設定したい場合 [#r8009dcc]
たとえば 給与の明細(多)と給与(一)の関連がある場合。
たとえばこんなコードだったとします。
-給与の明細
package nu.mine.kino.examples.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* @author Masatomi KINO
* @version $Revision$
*/
@Entity
@Table(name="SALARY_DETAIL")
public class SalaryDetail {
@Id
@GeneratedValue
private Integer id;
@Column(name = "PARENT_ID")
private Integer parentId;
@Column(name = "DETAIL_CODE")
private Integer detailCode;
private Long value;
//Getter/Setterは省略。
}
-給与
package nu.mine.kino.examples.entity;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
/**
* @author Masatomi KINO
* @version $Revision$
*/
@Entity
public class Salary {
@Id
@GeneratedValue
private Integer id;
@Temporal(TemporalType.DATE)
@Column(name = "SALARY_DATE")
private Date salaryDate;
//Getter/Setterは省略。
}
この場合は、明細側のクラスに@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;
}
....
}
----
この記事は
#vote(おもしろかった,そうでもない)
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}