蜜蜂号覚書

Hibernate

最終更新:

honeybe

- view
メンバー限定 登録/ログイン
Hibernate

基本情報





設定

composite-element

大体以下のように定義すると主キーなしの関連を表現出来る風。
 <class name="Parent">
   <id name="id" type="text" column="id">
     <generator class="assigned"/>
   </id>
   <property name="name" type="text" column="name" />
   <set name="children" table="child" lazy="true"><!-- lazy="true"で遅延読み込み。つけないとParentをロードしたときに全子が読み込まれる。lazy="false"の場合、パフォーマンス悪し。メモリ圧迫。 -->
     <key column="id" /> <!-- Parentのidをキーにする。 -->
     <composite-element class="Child"><!-- setに含まれるクラス。単体クラスのLoad/save等行えない。parent.getChildren().add(child);でinsertされる(かも) -->
       <meta attribute="use-in-equals">true</meta><!-- set/map/list/bagの場合、equals,hashCodeを実装することが推奨される。なぜなら未実装ならば含まれるオブジェクトが同一か判別不能→全delete/全insertを行う。から。このmetaをつけるとhbm2javaタスクでequals/hashCodeの実装が行われる。 -->
       <property name="name" type="text" column="name" />
     </composite-element>
   </set>
 </class>
記事メニュー
目安箱バナー