hibernateのGeneratorジェネレータ


オプションのサブ要素は、永続化クラスのインスタンスに一意の識別を生成するJavaクラスの名前です.このジェネレータインスタンスにいくつかの構成値または初期化パラメータが必要な場合は、要素で渡されます.
<id name="id" type="long" column="cat_id">
        <generator class="org.hibernate.id.TableHiLoGenerator">
                <param name="table">uid_table</param>
                <param name="column">next_hi_value_column</param>
        </generator>
</id>

もちろん、Hibernateは多くの組み込み実装を提供しています.次はビルダー内蔵のショートカット名です
1.increment
参照
long、short、またはintタイプに一意の識別を生成するために使用します.他のプロセスが同じテーブルにデータを挿入しない場合にのみ使用できます.クラスタの下では使用しないでください.
2.identity
参照
DB 2、MySQL、MS SQL Server、Sybase、HypersonicSQLの内蔵IDフィールドをサポートします.返される識別子はlong、shortまたはintタイプです.
3.sequence
参照
DB 2、PostgreSQL、Oracle、SAP DB、McKoiではシーケンスを使用し、Interbaseではジェネレータを使用します.返される識別子はlong、shortまたはintタイプです.
4.hilo
参照
高/低位アルゴリズムを用いてlong,shortまたはintタイプの識別子を効率的に生成する.上位値のソースとして、テーブルおよびフィールド(デフォルトはhibernate_unique_keyおよびnext_hi)が与えられます.高/低ビットアルゴリズムによって生成される識別子は、特定のデータベースでのみ一意です.
5.seqhilo
参照
高/低位アルゴリズムを使用して、long、shortまたはintタイプの識別子を効率的に生成し、データベースシーケンス(sequence)の名前を指定します.
6.uuid
参照
128ビットのUUIDアルゴリズムを使用して文字列タイプの識別子を生成します.これは、ネットワーク内で一意です(IPアドレスが使用されています).UUIDは32ビット16進数の文字列として符号化される.
7.native
参照
下位データベースのコンピテンシーに基づいてidentity、sequence、hiloのいずれかを選択します.
8.assigned
参照
アプリケーションにsave()の前にオブジェクトにラベルを割り当てさせます.これは要素が指定されていない場合のデフォルトの生成ポリシーです.
9.select
参照
データベース・トリガで一意のプライマリ・キーの行を選択し、プライマリ・キー値を返してプライマリ・キーを割り当てます.
10.foreign
参照
別の関連オブジェクトの識別子を使用します.通常はと組み合わせて使用されます.