5.1.13. component, dynamic-component

5.1.13. component, dynamic-component

<component> 要素は、子オブジェクトのプロパティを親クラスのテーブルのカラムへマッピングします。コンポーネントは自分のプロパティ、コンポーネント、コレクションの順に定義できます。以下の「コンポーネント」を見てください。

<component 
        name="propertyName" 
        class="className"
        insert="true|false"
        update="true|false"
        access="field|property|ClassName"
        lazy="true|false"
        optimistic-lock="true|false"
        unique="true|false"
        node="element-name|."
>
        
        <property ...../>
        <many-to-one .... />
        ........
</component>

name:プロパティ名。

class (オプション - デフォルトはリフレクションにより決定されるプロパティの型): コンポーネント(子)クラスの名前。

insert:マッピングされたカラムが SQL の INSERT に現れるようにするかどうかを指定します。

update:マッピングされたカラムが SQL の UPDATE に現れるようにするかどうかを指定します。

access (オプション - デフォルトは property ): Hibernate がプロパティの値にアクセスするために使用すべき戦略。

lazy (オプション - デフォルトは false ): インスタンス変数に最初にアクセスしたときに、コンポーネントを遅延してフェッチするよう指定します。 (バイトコード実装を作成する時間が必要になります)

optimistic-lock (オプション - デフォルトは true ): このプロパティの更新に、楽観ロックの取得を要求するかどうかを指定します。言い換えれば、このプロパティがダーティであるときにバージョンを増やすべきかを決定します。

unique (オプション - デフォルトは false ): コンポーネントのすべてのマッピングするカラムに、ユニーク制約が存在するかを指定します。

子の <property> タグで、子のクラスのプロパティをテーブルカラムにマッピングします。

<component> 要素は、親エンティティへ戻る参照として、コンポーネントのクラスのプロパティをマッピングする <parent> サブ要素を許可します。

<dynamic-component> 要素は、 Map がコンポーネントとしてマッピングされることを可能にします。プロパティ名は map のキーを参照します。項8.5. 「動的コンポーネント」 を参照してください。