5.2.3 JPAプロバイダとは
JPAプロバイダとは,次に示すマッピング機能,API,およびクエリ言語を提供するJPA実装です。JPAプロバイダでは次の機能を提供しています。
-
Javaオブジェクトとデータベースのマッピング機能
-
データベースへの処理をカプセル化したAPI
-
JPA仕様で共通に使用できるクエリ言語
JPAプロバイダを使用すると,データベースとのやり取りに関する処理を意識しないでアプリケーションを設計できるという利点があります。また,JPAプロバイダで利用できるJPQLというクエリ言語を使用することで,データベースに詳しくなくてもクエリを送信できるという利点もあります。
JPAプロバイダが提供するマッピング機能について次の図に示します。
図について説明します。
アプリケーション内にエンティティクラスを用意し,エンティティクラスからエンティティオブジェクトを生成します。ユーザは,エンティティオブジェクトの内容を変更することで,データベースの内容を変更します。これによって,データベースへの処理を意識しないで,データベースの内容を更新できます。
JPAプロバイダは,エンティティオブジェクトをデータベースのレコードとマッピングします。ユーザが実施した検索,挿入,削除,または更新の処理をデータベースに対して実行します。
生成されたエンティティオブジェクトはEntityManagerの管理下に置かれます。エンティティオブジェクトのフィールドの値が変更されると,EntityManagerは変更を自動的に検知して,変更をデータベースのテーブルに反映します。
EntityManagerは次の処理をするときに呼び出されます。
-
エンティティクラスのオブジェクトのデータをデータベースのテーブルに追加する。
-
データベースにすでに格納されているデータを検索してエンティティクラスのオブジェクトとして取り出す。
EntityManagerの詳細については,「5.4 EntityManagerとは」を参照してください。