Red Hat Training
A Red Hat training course is available for Red Hat JBoss Web Server
7.2.3. インデックス付きのコレクション
set と bag を除く全てのコレクションマッピングには、コレクションテーブルの中に インデックス用のカラム が必要です。そのカラムに、配列や
List
のインデックス、もしくは Map
のキーをマッピングします。 Map
のインデックスは、 <map-key>
によりマッピングされた基本型か、 <map-key-many-to-many>
によりマッピングされたエンティティの関連か、あるいは <composite-map-key>
によりマッピングされたコンポジット型になります。配列かリストのインデックスは、常に integer
型で、 <list-index>
要素によりマッピングします。マッピングされたカラムにはシーケンシャルな整数を格納します。デフォルトでは0から番号が付けられます。
<list-index column="column_name" base="0|1|..."/>
column_name (必須): コレクションインデックスの値を保持するカラム名。
| |
base (オプション - デフォルトでは0 ): リスト もしくはアレイの最初の要素に対応するインデックス カラムの値
|
<map-key column="column_name" formula="any SQL expression" type="type_name" node="@attribute-name" length="N"/>
column (オプション): コレクションインデックスの値を保持するカラム名。
| |
formula (オプション):マップのキーを評価する際に利用する SQL 式。
| |
type (必須): マップキーの型
|
<map-key-many-to-many column="column_name" formula="any SQL expression" class="ClassName" />
column (オプション): コレクションインデックスの値に対する外部キーカラム名
| |
formula (オプション): マップキーの外部キーを評価する際に利用するSQL 式。
| |
class (必須): マップキーとして利用するエンティティクラス。
|
テーブルにインデックスのカラムがないにも拘らずプロパティ型として
List
を利用したい場合、Hibernate <bag>としてこのプロパティをマッピングすることができます。データベースへ渡され永続化された場合、bag はその順序を保持しますが、データベースからリトリーブした場合はオプションで分類および順序付けをすることができます。