fc2ブログ

2011-12-01(Thu)

hibernateでリレーションを組んでみる(1)

ParentsがOne
Childrenが複数いるのでMany
であるとすると

Parents.hbm.xmlにはone-to-many
Children.hbm.xmlはmany-to-one
のタグを追加することになる。

Entityの定義には参照用のinstance定義?として
それぞれ以下の通り追加する。


@Entity
@Table(appliesTo = "Parents")
public class Parents{
@Id
private Integer id;
private String name;
provate Integer age;
private Set childrenset; /** Childrenインスタンスはここにロードされる */

(以下、getter, setterメソッドは省略)
}

@Entity
@Table(appliesTo = "Children")
public class Children{
@Id
private Integer id;
private String position;
provate Integer age;
private Parents Parents; /** 単数なので型はParentsとなる */

 (以下、getter, setterメソッドは省略)
}


次は、hbm.xmlファイルに追加する。

< !-- Parents側(Parents.hbm.xml) -->
< set name="childrenset" sort="unsorted">
< key>
< column name="id"/>
< /key>
< one-to-many class="db.hoge.model.Parents"/>
< /set>

< !-- Children側(Children.hbm.xml) -->
< many-to-one
cascade="all" class="db.parents.model.Parents" column="id"
insert="false" lazy="false" name="parents" update="false"
/>

ChildrenからParentsを参照するならDB側のChildrenテーブルにParentsカラムを作成しておき
レコード生成時にentityをsave()しておく。

参考:
HIBERNATE イン アクション
Hibernate (開発者ノートシリーズ)
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

コメント

プロフィール

kumagonjp2

Author:kumagonjp2
Python,Django,R,Mongo,MySQL,Struts,Spring,データマイニングなどサーバー関係のメモを残していきます。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
雪が3Dで降るブログパーツ ver2

マウスで見る方向変えられます

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR