アプリケーションで Java Persistence を使用する場合は、持続性ユニットが必要です。持続性ユニットとは、アプリケーションの特定のエンティティーのセットを管理し、持続させる方法を決定するために使用される一意の名前の付いたプロパティーのコレクションです。
持続性ユニットは、persistence.xml ファイルで定義します。persistence.xml で複数の持続性ユニットを定義できますが、各持続性ユニットには一意の名前が必要です。
持続性ユニットで指定されるプロパティーには、次のようなものがあります。
持続性ユニットは WAR または EJB-JAR ファイルとしてパッケージ化できます。または、JAR ファイルとしてパッケージ化してから、アプリケーションに組み込むことができます。
持続性ユニットのスコープは、persistence.xml の場所によって特定されます。ウィザードを使用して持続性ユニットを作成する場合は、スコープの適切な場所に persistence.xml が作成されます。たとえば、IDE を使用して EJB モジュールの持続性ユニットを作成する場合は、EJB モジュールの src/conf ディレクトリに persistence.xml が生成されます。EJB JAR の構築時に、EJB JAR の META-INF ディレクトリの persistence.xml がパッケージ化されます。持続性ユニットのスコープは、EJB JAR ファイル内のクラスのセットです。
スコープが持続性ユニットで明示的に指定されていない場合、デフォルトで、EJB JAR ファイル内のすべてのエンティティーは、persistence.xml で定義される持続性ユニットのスコープ内にあります。
注:
持続性プロバイダとは、Java Persistence API の実装のことです。持続性プロバイダは、アプリケーションのオブジェクトを持続させる機能を提供するライブラリです。
IDE には、TopLink Essentials 持続性プロバイダがバンドルされています。TopLink Essentials は、Sun Java System Application Server Platform Edition 9 の参照実装であり、デフォルトの Java Persistence プロバイダです。 TopLink Essentials 持続性プロバイダは、toplink-essentials.jar および toplink-essentials-agent.jar から構成されるライブラリです。プロバイダとして TopLink Essentials を使用するか、または他の持続性プロバイダを指定できます。
データソースとは、持続性エンティティーが保存されるデータベースです。データソースはサーバーで登録し、JNDI 名を使用して指定する必要があります。トランザクションがコンテナ管理による JTA トランザクションである場合、データソースは JTA データソースにする必要があります。トランザクションがアプリケーション管理によるトランザクションである場合、データソースは IDE で登録された JDBC データベース接続に従って指定します。
Java SE 環境では、データベースは、使用する持続性プロバイダの要件に従って、データソースを使用して、またはその他の手段によって指定します。
持続性ユニットは、アプリケーションでトランザクションを管理する方法を指定します。使用できるトランザクションのタイプは、ターゲットコンテナによって異なります。Java EE コンテナに配備する場合、トランザクションはコンテナ管理またはアプリケーション管理にすることができます。Java EE コンテナに配備しない場合、トランザクションはアプリケーションによって管理する必要があります。
persistence.xml では、持続性ユニットのトランザクションのタイプは JTA に設定されます。Sun Java System Application Server に配備する場合、持続性ユニットの作成時に、このオプションはデフォルトで選択されます。
persistence.xml では、持続性ユニットのトランザクションのタイプは RESOURCE_LOCAL に設定されます。