21.9.4. EJB 2.x のコンテナ管理による永続性の設定


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

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

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

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

/subsystem=cmp/hilo-keygenerator=HiLoKeyGeneratorFactory:add(create-table=true,create-table-ddl="create table HILOSEQUENCES (SEQUENCENAME varchar(50) not null, HIGHVALUES integer not null, constraint hilo_pk primary key (SEQUENCENAME))",data-source=java:jboss/datasources/ExampleDS, id-column=HIGHVALUES,sequence-column=SEQUENCENAME,table-name=HILOSEQUENCES,sequence-name=general,block-size=10)
Copy to Clipboard
このコマンドで作成される XML 設定は以下のとおりです。
<subsystem xmlns="urn:jboss:domain:cmp:1.1">
     <key-generators>
         <hilo name="HiLoKeyGeneratorFactory">
             <block-size>10</block-size>
             <create-table>true</create-table>
             <create-table-ddl>create table HILOSEQUENCES (SEQUENCENAME varchar(50) not null, HIGHVALUES integer not null, constraint hilo_pk primary key (SEQUENCENAME))</create-table-ddl>
             <data-source>java:jboss/datasources/ExampleDS</data-source>
             <id-column>HIGHVALUES</id-column>
             <sequence-column>SEQUENCENAME</sequence-column>
             <sequence-name>general</sequence-name>
             <table-name>HILOSEQUENCES</table-name>
         </hilo>
     </key-generators>
 </subsystem>
Copy to Clipboard
注記
block-size を !=0 の値に設定しないと、生成された PKey がインクリメントされないため、DuplicateKeyException が発生し、エンティティーの作成に失敗します。
注記
一貫性を確保するために、クラスターの場合は select-hi-ddl を 'FOR UPDATE' として設定する必要があります。すべてのデータベースはロック機能をサポートしません。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat