第3章 Hibernate アノテーション
3.1. Hibernate アノテーション
Org.hibernate.annotations
パッケージには、標準の Jakarta Persistence アノテーションの上に Hibernate によって提供されるアノテーションが含まれます。
表3.1 一般的なアノテーション
アノテーション | 説明 |
---|---|
| クラス、プロパティー、またはコレクションレベルで定義できる任意の SQL チェック制約。 |
| エンティティーまたはコレクションにイミュータブルとしてマークを付けます。アノテーションがないということは、要素が変更されたことを意味します。 イミュータブルなエンティティーはアプリケーションによって更新されない可能性があります。イミュータブルなエンティティーの更新は無視されますが、例外は発生しません。
|
表3.2 キャッシュエンティティー
アノテーション | 説明 |
---|---|
| キャッシュストラテジーをルートエンティティーまたはコレクションに追加します。 |
表3.3 コレクション関連のアノテーション
アノテーション | 説明 |
---|---|
| 永続マップのキーのタイプを定義します。 |
|
異なるエンティティータイプを参照する |
| SQL 順序付け (HQL の順序ではなく) を使用してコレクションを順序付けます。 |
|
コレクション、アレイ、および結合されたサブクラスの削除で使用するストラテジー。現在、セカンダリーテーブルの |
| カスタム永続機能を指定します。 |
| コレクションのソート (Java レベルのソート)。 |
| コレクションのエンティティーまたはターゲットエンティティーに追加する要素。レシピは SQL で記述されます。 |
| コレクションジョインテーブルに追加する部分。レシピは SQL で記述されます。 |
表3.4 CRUD 操作のためのカスタム SQL
アノテーション | 説明 |
---|---|
|
Hibernate デフォルトの |
|
Hibernate デフォルトの |
|
Hibernate のデフォルト |
|
Hibernate のデフォルト |
|
Hibernate デフォルトの |
| イミュータブルで読み取り専用のエンティティーを指定の SQL サブ選択式にマッピングします。 |
|
自動フラッシュが正しく実行され、派生エンティティーに対するクエリーが古いデータを返さないようにします。大半は |
表3.5 エンティティー
アノテーション | 説明 |
---|---|
| 関連付けにカスケードストラテジーを適用します。 |
|
標準の
|
| ポリモーフィズム Hibernate のタイプを定義するために使用されます。 |
| 特定のクラスのレイジーおよびプロキシー設定。 |
| プライマリーまたはセカンダリーのテーブルに情報を補完します。 |
| Table の複数形のアノテーション。 |
| 明示的なターゲットを定義し、反映および汎用的な解決を回避します。 |
| エンティティーまたはコンポーネントの tuplizer を定義します。 |
| エンティティーまたはコンポーネントの一連の tuplizer を定義します。 |
表3.6 フェッチ
アノテーション | 説明 |
---|---|
| SQL 読み込みのバッチサイズ。 |
| フェッチストラテジープロファイルを定義します。 |
|
|
|
エンティティー属性が同じグループに属する他のすべての属性と共にフェッチされる必要があることを指定します。エンティティー属性をレイジーに読み込むには、バイトコード拡張が必要です。デフォルトでは、すべての非コレクション属性は |
表3.7 フィルター
アノテーション | 説明 |
---|---|
| フィルターをエンティティーまたはコレクションのターゲットエンティティーに追加します。 |
| フィルター定義。 |
| フィルター定義の配列。 |
| フィルターを結合テーブルコレクションに追加します。 |
|
複数の |
|
複数の |
| パラメーター定義。 |
表3.8 プライマリーキー
アノテーション | 説明 |
---|---|
| このアノテーション付きプロパティーはデータベースによって生成されます。 |
| タイプ解除された方法で、あらゆる Hibernate generator を記述するジェネレーターアノテーション。 |
| 汎用ジェネレーター定義のアレイ。 |
| プロパティーがエンティティーの純粋な ID の一部であることを指定します。 |
| キー/値のパターン。 |
|
Hibernate の |
表3.9 継承
アノテーション | 説明 |
---|---|
| ルートエンティティーに配置されるイデンティターの式。 |
| Hibernate 固有の識別子プロパティーを表示するオプションのアノテーションです。 |
| 指定の識別子値を対応するエンティティータイプにマッピングします。 |
表3.10 JP-QL/HQL クエリーのマッピング
アノテーション | 説明 |
---|---|
|
|
|
Hibernate 機能を使用した |
|
|
|
Hibernate 機能を使用して |
表3.11 簡単なプロパティーのマッピング
アノテーション | 説明 |
---|---|
| プロパティーアクセスタイプ。 |
| 列のアレイをサポートします。コンポーネントのユーザータイプマッピングに便利です。 |
| 値をコラムから読み取り、コラムに書き込むために使用するカスタムの SQL 式。クエリーとともにオブジェクトの直接読み込み/保存に使用します。書き込み式には、値に対して 1 つの '?' プレースホルダーが必ず含まれている必要があります。 |
|
|
表3.12 プロパティー
アノテーション | 説明 |
---|---|
|
大半の場所で、 |
| データベースインデックスを定義します。 |
|
大半の場所で、 |
| プロパティーを所有者 (通常は所有するエンティティー) へのポインターとして参照します。 |
| Hibernate タイプ。 |
| Hibernate タイプ定義。 |
| Hibernate タイプ定義の配列。 |
表3.13 単一の関連付け関連のアノテーション
アノテーション | 説明 |
---|---|
| 複数のエンティティータイプを参照するトール関連付けを定義します。一致したエンティティータイプのマッチングは、メタデータの識別子コラムを使用して行われます。このようなマッピングはマージのみにする必要があります。 |
|
|
|
|
| 指定の関連付けに使用されるフェッチストラテジーを定義します。 |
| コレクションのレイジーステータスを定義します。 |
|
ToOne 関連づけのレイジーステータスを定義します ( |
| 要素が関連上に見つからない場合に行うアクション。 |
表3.14 楽観的ロック
アノテーション | 説明 |
---|---|
| アノテーションが付けられたプロパティーの変更によってエンティティーバージョンの増分がトリガーされるかどうか。アノテーションが存在しない場合は、プロパティーが楽観的ロックストラテジーに関与します (デフォルト)。 |
| エンティティーに適用される楽観的ロックのスタイルを定義するために使用されます。階層では、ルートエンティティーでのみ有効です。 |
| Version および timestamp version プロパティーと併せてのオプションのアノテーションです。アノテーションの値で、タイムスタンプの生成先が決まります。 |