「Hibernate」の編集履歴(バックアップ)一覧に戻る

Hibernate - (2008/10/23 (木) 10:12:20) のソース

-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>
記事メニュー
目安箱バナー