CJPAプロバイダでは,次の機能を提供しています。
- エンティティオブジェクトとデータベースのマッピング
- エンティティオブジェクトの管理
- JPQLによるデータの操作
- JDBCを通じてのデータベースへのアクセス
JPAを使用するには,ユーザが作成したアプリケーションでCJPAプロバイダが提供するインタフェースを操作します。CJPAプロバイダで実行する処理を次の図に示します。
図6-2 CJPAプロバイダで実行される処理
図について説明します。
- persistence.xmlに定義されている永続化ユニットの情報から,CJPAプロバイダはEntityManagerFactoryを生成します。
永続化ユニットとは,マッピング対象となるクラス,O/Rマッピングの情報,データソースなどを集めた論理的なグループです。永続化ユニットの詳細については,「5.4.4 永続化ユニットとは」を参照してください。
- 生成されたEntityManagerFactoryからEntityManagerを生成します。
- ユーザアプリケーションから,EntityManager,クエリ,またはトランザクションを操作します。
- EntityManager,クエリ,トランザクションから永続化コンテキストを通して,エンティティオブジェクトを操作します。
- エンティティオブジェクトの変更をJDBCドライバを介してデータベースに反映します。
なお,EntityManagerには,次の2種類があります。
- コンテナ管理EntityManager
J2EEコンテナによって管理されるEntityManagerです。
- アプリケーション管理EntityManager
アプリケーションによって管理されるEntityManagerです。
EntityManagerの種類の詳細については,「5.5.1 EntityManagerと永続化コンテキスト」を参照してください。
また,トランザクションではトランザクションのコミットやロールバックなどを管理します。CJPAプロバイダでは,トランザクションとしてリソースローカルトランザクションを使用できます。JTAトランザクションと連携する場合,J2EEコンテナが提供する機能を使用します。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.