tell me more iconJPA Persistence

Java Enterprise Edition 5(Java EE 5)Enterprise Java Beans(EJB)3.0仕様の一部であるJava Persistence API(JPA)は、Javaの永続性を大幅に簡易化します。 Javaオブジェクトをリレーショナル・データベース表へ宣言的に定義する、標準的かつ移植性の高いオブジェクト・リレーショナル・マッピング・アプローチを提供します。このアプローチは、Java EE 5アプリケーション・サーバーの内部およびJava Standard Edition(Java SE)5アプリケーションのEJBコンテナ外部の両方で動作します。

JPA永続性ディスクリプタ・ファイル persistence.xmlを必要とするJARファイルの永続性アーカイブで、JPAエンティティ・アプリケーションをパッケージ化できます。 1つ以上の永続性ユニットが persistence.xmlファイルで構成されます。 それぞれの永続性ユニットには名前が必要です。 名前のついた永続性ユニットによって、一連のメタデータ・ファイル、クラス、およびすべてのクラスがグループで保存されるjarを指定する便利な方法が実現します。

最初に persistence.xmlファイルを開くと、Oracle JDeveloperにより概要エディタでファイルが表示されます。 新しい永続性ユニットを作成する際にJPA永続性の概要エディタを使用して、 persistence.xmlファイルの既存の永続性ユニットを削除または編集します。

persistence.xmlファイルの概要エディタ

Create Entities from Tablesウィザードを使用してJPAエンティティを作成すると、Oracle JDeveloperにより persistence.xmlファイルにデフォルトの永続性ユニットである Project1が自動的に作成されました。 永続性ユニットのデフォルト名がプロジェクト名から作成されるので注意してください。

生成されたデフォルトの永続性ユニットを構成してJava EEコンテナの内部で実行するので、目的がわかる名前を使用できます。 永続性ユニットの名前を変更するには、 Persistence Unitsの「 Project1 」を選択して、「 Edit icon」をクリックします。 Rename Persistence Unitダイアログで、新しい名前を入力します。

Rename Persistence Unit

Java EEコンテナの内部で実行するために構成された永続性ユニットは、ウィザードの使用時に選択したデータベース接続と一致するJTAデータソースを指す必要があります。

persistence.xmlのエディタ・ウィンドウで、「 Source 」をクリックして、XMLソース・エディタに切り替えます。

persistence.xmlファイル内で、1つ以上の <persistence-unit>エントリが定義されます。 各 <persistence-unit>は、 .jarファイルのエンティティのサブセット(すべての場合もあります)を識別して、メタデータとこのエンティティ・グループを関連づけます。

Project1<persistence-unit>コードは、次のように表示されます。

                         
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="Project1">
    <jta-data-source>
      jdbc/FODDS
    </jta-data-source>
    <class>
      project1.ProductsBase
    </class>
  </persistence-unit>
</persistence>
                      

この例では、デフォルトの Project1永続性ユニットを使用していません。 代わりに、次のキュー・カードで実行されるJava EEコンテナ外部で実行するために構成された新しい永続性ユニットを作成しています。