ヘッダーをスキップ
Oracle SOA Suite開発者ガイド
10g(10.1.3.1.0)
B31839-01
  目次へ
目次
索引へ
索引

前へ
前へ
 
次へ
次へ
 

4.3 永続性ユニットの構成

persistence.xmlファイルは、.jarファイルがJPAエンティティを含んだ永続性アーカイブ・ファイルであることを宣言するディスクリプタです。 図4-1に示すように、persistence.xmlファイルは、各エンティティ・プロジェクトの「アプリケーション・ソース」フォルダの「META-INF」ディレクトリ内にあります。

図4-1 プロジェクト内のpersistance.xmlファイルの位置

persistence.xmlはプロジェクトの「META-INF」ディレクトリ内にあります。

このファイル内には、1つ以上の<persistence-unit>エントリが定義されています。 各永続性ユニットでは、デプロイ済JARファイル(専用永続性アーカイブ、EJB JARファイルまたはWARファイル)に含まれているエンティティのサブセット(すべての場合もあります)が識別されます。 永続性ユニットによって、メタデータがこのエンティティ・グループ(名前付きエンティティ・マネージャも含む)に関連付けられます。 エンティティ・マネージャについては、第4.5項「セッションBeanからエンティティへのアクセス」で説明します。

同じエンティティが複数の永続性ユニットに出現する場合がありますが、各ユニットでは異なるマッピング動作が保持されます。 永続性ユニットでは、そのユニットが表すエンティティ・クラスが定義される以外に、そのユニットのデータ・ソース情報(デフォルト接続の上書き時)、および多数のプラットフォーム固有のプロパティが定義されます。 個別の永続性ユニットを作成する場合の一般的な必要事項は、Java EEコンテナの内部と外部の両方で同じエンティティを実行することです。 コンテナ外部でEJBをテストする方法については、第4.8.1項「Javaサービス・ファサードを使用したコンテナ外部でのエンティティのテスト」で説明します。

4.3.1 永続性ユニットの作成方法

永続性ユニットを作成するには、「永続性ユニットの作成」ダイアログを使用します。

「永続性ユニットの作成」ダイアログでは、Java EEコンテナの内部または外部で実行するように構成した永続性ユニットを作成できます。 Java EEコンテナの内部で実行する場合は、ユニットをJTA(Java Transaction API)データ・ソースに関連付けることができます。これによって、エンティティは分散トランザクションに含まれるようになります。 サーバーには、<jta-data-source>が定義されている必要があります。 この<jta-data-source>は、デプロイ時に提供されたdata-sources.xmlファイルに定義されている場合、永続性ユニットとともにデプロイされている場合、またはサーバーに事前構成されている場合があります。 コンテナの外部で実行する場合は、エンティティをJTAトランザクションに含めることができないため、データ・ソース接続を識別するプロパティは明示的に定義します。

永続性ユニットを作成する手順は、次のとおりです。

  1. ナビゲータで、「persistence.xml」ファイルを右クリックし、「新規の永続性ユニット」を選択します。

  2. 「永続性ユニットの作成」ダイアログに、適切な情報を入力します。 詳細情報を参照する場合は、ダイアログの「ヘルプ」をクリックするか、[F1]キーを押してください。

  3. 「OK」をクリックして、変更内容を保存します。

4.3.2 永続性ユニットの編集方法

JDeveloper 10.1.3.1で永続性ユニットを変更する最も簡単な方法は、「構造」ペインで永続性ユニットを参照し、プロパティ・インスペクタで変更することです。 ただし、既存の永続性ユニットを手動で編集する場合は、XMLコードを編集する方法もあります。

ナビゲータで、「persistence.xml」ファイルをダブルクリックしてエディタで開きます。 サンプル・コードとして、例4-2に示すSOA Order Bookingアプリケーションのpersistence.xmlを使用します。

例4-2 persistence.xmlファイル

<?xml version="1.0" encoding="windows-1252" ?>
<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"
             xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="customerServiceUnit">
<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
    <jta-data-source>jdbc/soademoDS</jta-data-source>
  </persistence-unit>
</persistence>