16.9.4. EJB 2.x Container-Managed Persistence の設定

EJB 2.x Container Managed Persistence (CMP) サブシステムが任意の数のキージェネレーターを指定するよう設定できます。キージェネレーターは、CMP サービスにより永続化された各エンティティーを識別する一意のキーを生成するために使用されます。
UUID ベースのキージェネレーターと HiLo キージェネレーターの 2 つの種類のキージェネレーターを定義できます。
UUID ベースのキージェネレーター
UUID ベースのキージェネレーターは、Universally Unique Identifiers を使用してキーを生成します。UUID キージェネレーターは、一意の名前のみを持つ必要があり、他の設定は持ちません。
UUID ベースのキージェネレーターは、以下のコマンド構文を使用して CLI で追加できます。
 /subsystem=cmp/uuid-keygenerator=UNIQUE_NAME:add 

例16.16 UUID キージェネレーターの追加

名前が uuid_identities の UUID ベースのキージェネレーターを追加するには、以下の CLI コマンドを使用します。
/subsystem=cmp/uuid-keygenerator=uuid_identities:add
このコマンドで作成される XML 設定は以下のとおりです。
<subsystem xmlns="urn:jboss:domain:cmp:1.0"> 
   <key-generators>
      <uuid name="uuid_identities" />
   </key-generators>
</subsystem>
HiLo キージェネレーター
HiLo キージェネレーターは、データベースを使用してエンティティー ID キーを作成および格納します。HiLo キージェネレーターは、一意の名前を持つ必要があり、データと、キーを格納するテーブルおよび列の名前を格納するために使用されるデータソースを指定するプロパティーで設定されます。
HiLo キージェネレーターは、以下のコマンド構文を使用して CLI で追加できます。
 /subsystem=cmp/hilo-keygenerator=UNIQUE_NAME/:add(property=value, property=value, ...) 

例16.17 HiLo キージェネレーターの追加

/subsystem=cmp/hilo-keygenerator=DB_KEYS/:add(create-table=false,data-source=java:jboss/datasources/ExampleDS,drop-table=false,id-column=cmp_key_ids,select-hi-ddl=select max(cmp_key_ids) from cmp_key_seq,sequence-column=cmp_key_seq,table-name=cmp-keys))
このコマンドで作成される XML 設定は以下のとおりです。
<subsystem xmlns="urn:jboss:domain:cmp:1.0"> 
   <key-generators>
      <hilo name="DB_KEYS">
         <create-table>false</create-table>
         <data-source>java:jboss/datasources/ExampleDS</data-source>
         <drop-table>false</drop-table>
         <id-column>cmp_key_ids</id-column>
         <select-hi-ddl>select max(cmp_key_ids) from cmp_key_seq</select-hi-ddl>
         <sequence-column>cmp_key_seq</sequence-column>
         <table-name>cmp-keys</table-name>
      </hilo>
   </key-generators>
</subsystem>