18.8. JPA キャッシュストア
			JPA (Java Persistence API) キャッシュストアは、正式なスキーマを使用してデータベースにキャッシュエントリーを格納します。これにより、他のアプリケーションは永続化データを読み取り、他のアプリケーションにより提供されたデータを Red Hat JBoss Data Grid にロードできます。他のアプリケーションが JBoss Data Grid でこのデータベースを同時に使用しないようにする必要があります。
		
重要
				Red Hat JBoss Data Grid では、JPA キャッシュストアはライブラリーモードでのみサポートされます。
			
18.8.1. JPA キャッシュストアの XML 設定例 (ライブラリーモード)
リンクのコピーリンクがクリップボードにコピーされました!
		Red Hat JBoss Data Grid で XML を使用して JPA キャッシュストアを設定するには、以下の設定を 
infinispan.xml ファイルに追加します。
	
		この設定例で使用された要素とパラメーターの詳細については、「キャッシュストア設定の詳細 (ライブラリモード)」を参照してください。
	
18.8.2. JPA キャッシュストアのプログラミングによる設定例
リンクのコピーリンクがクリップボードにコピーされました!
		Red Hat JBoss Data Grid で JPA キャッシュストアをプログラミングにより設定するには、以下のコードを使用します。
	
Configuration cacheConfig = new ConfigurationBuilder().persistence().addStore(JpaStoreConfigurationBuilder.class).persistenceUnitName("org.infinispan.loaders.jpa.configurationTest")
                .entityClass(User.class)
                .build();
Configuration cacheConfig = new ConfigurationBuilder().persistence().addStore(JpaStoreConfigurationBuilder.class).persistenceUnitName("org.infinispan.loaders.jpa.configurationTest")
                .entityClass(User.class)
                .build();
		このコード例で使用されるパラメーターは以下のとおりです。
	
- persistenceUnitNameパラメーターは、JPA エンティティークラスを含む設定ファイル (- persistence.xml) の JPA キャッシュストアの名前を指定します。
- entityClassパラメーターは、このキャッシュに格納された JPA エンティティークラスを指定します。各設定で指定できるクラスは 1 つだけです。
18.8.3. データベースへのメタデータの格納
リンクのコピーリンクがクリップボードにコピーされました!
storeMetadata が true (デフォルト値) に設定された場合、有効期限、作成および変更タイムスタンプ、バージョンなどのエントリーに関するメタ情報はデータベースに格納されます。エンティティーテーブルのレイアウトは固定され、メタデータを収めることができないため、JBoss Data Grid はメタデータを __ispn_metadata__ という名前の追加テーブルにメタデータを格納します。
	
		このテーブルの構造は、使用中のデータベースに依存します。テスト環境と同じデータベースを使用して、このテーブルの自動作成を有効にし、構造を本稼働データベースに転送します。
	
手順18.7 persistence.xml でのメタデータエンティティーの設定
- Hibernate を JPA 実装として使用すると、以下のようにpersistence.xmlのプロパティーhibernate.hbm2ddl.autoを使用してこれらのテーブルの自動作成を許可できます。<property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.hbm2ddl.auto" value="update"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 以下の内容をpersistence.xmlに追加して、JPA プロバイダーに対してメタデータエンティティークラスを宣言します。<class>org.infinispan.persistence.jpa.impl.MetadataEntity</class> <class>org.infinispan.persistence.jpa.impl.MetadataEntity</class>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
		説明のとおり、メタデータは常に新しいテーブルに格納されます。メタデータ情報の収集と格納が必要ない場合は、JPA ストア設定で 
storeMetadata 属性を false に設定します。
	18.8.4. さまざまなコンテナーでの JPA キャッシュストアのデプロイ
リンクのコピーリンクがクリップボードにコピーされました!
		Red Hat JBoss Data Grid の JPA キャッシュストア実装は、Red Hat JBoss Enterprise Application Platform を除くすべてのサポート対象コンテナーに対して正常にデプロイされます。JBoss Data Grid の JBoss EAP モジュールには、JPA キャッシュストアと関連ライブラリー (Hibernate など) が含まれます。結果として、関連ライブラリーはアプリケーション内部にパッケージ化されず、アプリケーションはインストールされた JBoss EAP モジュールのライブラリーを参照します。
	
		これらのモジュールは、JBoss EAP 以外のコンテナーには必要ありません。結果として、すべての関連ライブラリーは、以下の Maven 依存関係の場合のようにアプリケーションの WAR/EAR ファイル内でパッケージ化されます。 
 
Copy to Clipboard
Copied!
 
 
Toggle word wrap
Toggle overflow
 
 
	
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-cachestore-jpa</artifactId>
    <version>6.4.0.Final-redhat-4</version>
</dependency>
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-cachestore-jpa</artifactId>
    <version>6.4.0.Final-redhat-4</version>
</dependency>手順18.8 JBoss EAP 6.3.x およびそれ以前のバージョンでの JPA キャッシュストアのデプロイ
- JBoss Data Grid モジュールの依存関係をアプリケーションのクラスパスに追加するには、以下のいずれかの方法で JBoss EAP デプロイヤーに依存関係のリストを提供します。- 依存関係設定をMANIFEST.MFファイルに追加します。Manifest-Version: 1.0 Dependencies: org.infinispan:jdg-6.6 services, org.infinispan.persistence.jpa:jdg-6.6 services Manifest-Version: 1.0 Dependencies: org.infinispan:jdg-6.6 services, org.infinispan.persistence.jpa:jdg-6.6 servicesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
- 依存関係設定をjboss-deployment-structure.xmlファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
 
手順18.9 JBoss EAP 6.4 以降での JPA キャッシュストアのデプロイ
- persistence.xmlで以下のプロパティーを追加します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- jboss-deployment-structure.xmlで以下の依存関係を追加します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 追加の JDG モジュールなどの依存関係をjboss-deployment-structure.xmlのdependenciesセクションに追加します。
重要
			JPA キャッシュストアは、JBoss Data Grid 6.6 の Apache Karaf でサポートされません。