// 下階層用テンプレート
#topicpath
----
//ここにコンテンツを記述します。
#contents

**多対一の関連がある場合を設定したい場合 [#r8009dcc]
たとえば 給与の明細(多)と給与(一)の関連がある場合。

たとえばこんなコードだったとします。
-給与の明細
 package nu.mine.kino.examples.entity;
 
 /**
  * @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;
 
 
 /**
  * @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;
   }
   ....
 }


**一対多の関連がある場合 [#r32e9470]
たとえば給与(一)に対して、明細(多)の関連がある場合。
**一対多の関連を設定したい場合 [#r32e9470]
次は、たとえば給与(一)に対して、明細(多)の関連を設定したいとします。

この場合は、親側のクラスに@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;
 }


----
この記事は
#vote(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS