8.3.1 使用できるJPAプロバイダ
JPAプロバイダとはEntityManagerの機能を提供するエンジンのことです。アプリケーションサーバで利用できるJPAプロバイダには,CJPAプロバイダとほかのベンダが提供するJPAプロバイダの2種類があります。それぞれのJPAプロバイダの利用について説明します。
(1) CJPAプロバイダを利用する場合
アプリケーションサーバで提供しているJPAプロバイダです。CJPAプロバイダでは,JPA 1.0仕様に基づく機能のほかに,CJPAプロバイダ独自の機能も提供しています。CJPAプロバイダの概要,アプリケーション実装時の注意事項,およびCJPAプロバイダの使用方法については,「9. CJPAプロバイダ」を参照してください。
(2) ほかのベンダのJPAプロバイダを利用する場合
ほかのベンダで提供しているJPAプロバイダです。JPA仕様でJPAプロバイダとアプリケーションサーバの間のインタフェースが明確にされているため,アプリケーションサーバではほかのベンダが提供しているJPA 1.0仕様に準拠したJPAプロバイダを利用することもできます。
アプリケーションサーバからほかのベンダのJPAプロバイダを利用する場合は,次の設定が必要になります。
-
JARファイルの指定
次のどちらかの方法でJPAプロバイダの実装が含まれるJARファイルを指定します。
-
簡易構築定義ファイルの論理J2EEサーバ(j2ee-server)の<configuration>タグ下にJARファイルを指定します。JARファイルを指定するには,<param-name>タグにadd.class.path,<param-value>タグにJARファイルを指定します。なお,簡易構築定義ファイルおよび指定するパラメタの詳細については,「12.2.1 J2EEサーバ用ユーザプロパティを設定するパラメタ」を参照してください。
-
ライブラリとしてJ2EEアプリケーションに含めます。
-
-
persistence.xmlでの定義
persistence.xmlの<provider>タグに,利用するJPAプロバイダが提供するjavax.persistence.PersistenceProviderの実装クラス名を指定します。詳細については,「8.8.2(2) <provider>タグ」を参照してください。
また,アプリケーションサーバで提供するJ2EEアプリケーション実行時間の監視機能を使用する場合は,JPAプロバイダのクラスおよびエンティティクラスを保護区リストに追加する必要があります。保護区リストへの追加方法については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.5 criticalList.cfg(保護区リストファイル)」を参照してください。
- 参考
-
JPAを使用したアプリケーションの実行では,アプリケーションサーバで提供する性能解析トレース機能を使用できます。
-
JPAプロバイダとしてCJPAプロバイダを使用する場合
性能解析トレースはアプリケーションサーバとCJPAプロバイダの両方で出力できます。
-
ほかのベンダのJPAプロバイダを使用する場合
アプリケーションサーバで出力する性能解析トレースだけ使用できます。
なお,アプリケーションサーバでは,javax.persistenceパッケージのEntityManagerFactory,EntityManager,EntityTransaction,およびQueryのAPIで性能解析トレースを出力します。また,JPAプロバイダでは,エンティティライフサイクルコールバックに関する性能解析トレースを出力します。
なお,性能解析トレースの概要については「15.2 アプリケーションサーバの性能解析トレースの概要」を参照してください。性能解析トレースの出力ポイントについては「15. 性能解析トレース」を参照してください。
-