蜜蜂号覚書 Hibernate
※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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>