ヘッダーをスキップ
Oracle Application Development Framework開発者ガイド
10g(10.1.3.0)
B40012-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

19 TopLinkに関する高度なトピック

この章では、マッピング・エディタでの高度なTopLink機能の使用方法について説明します。

この章の内容は次のとおりです。

19.1 TopLinkに関する高度なトピックの概要

TopLinkマッピング(第3章「アプリケーション・サービスの作成と使用」で説明)では、Javaオブジェクトをデータベースにマップできます。TopLinkマッピングを作成する場合、マッピング・エディタから使用できない関数があります。これらの関数をJavaコードで実装する必要があります。詳細は、『Oracle TopLink開発者ガイド』を参照してください。

19.2 高度なパラメータ(databindings.cpx)の使用

databindings.cpxファイルを使用して、デフォルトのTopLinkデータ・コントロールの動作を無効化または変更することができます。ここでは、次のオプションについて説明します。

databindings.cpxファイルのパラメータの詳細は、付録A「ADF XMLファイルのリファレンス」を参照してください。

「TopLinkDefinitionsのプロパティ」ダイアログ(図19-1を参照)を使用して、データ・コントロールでこれらのパラメータを定義します。

図19-1 「TopLinkDefinitionのプロパティ」ダイアログ

「TopLinkDefinitionのプロパティ」ダイアログのイメージ

19.2.1 削除を第一に実行

デフォルトでは、TopLink作業ユニット(3.8項「作業ユニットでのオブジェクトの作成と変更」を参照)は、削除操作の前に挿入操作を実行します。しかし、最初に削除操作を実行しなければならない場合があります。

たとえば、主キーが1の行を削除し、同じトランザクション内で同じ主キーを持つ新しい行を作成すると、行がすでに存在することを示すSQL例外が発生します。

この問題を解決するには、databindings.cpxファイルのTopLinkShouldPerformDeletesFirstパラメータを使用して、その作業ユニットでまず削除操作を強制的に実行します。

例19-1 TopLinkShouldPerformDeletesFirstオプションの指定

...
<Parameter
   name="TopLinkShouldPerformDeletesFirst"
   value="True"
</Parameter
...

19.2.2 TopLinkセッション・ファイルの指定

デフォルトでは、TopLinkセッション構成ファイルにはsessions.xmlという名前が付けられます。Oracle JDeveloperのマッピング・エディタを使用して、このファイルを作成できます(詳細はOracle JDeveloperのオンライン・ヘルプを参照)。

異なるセッション構成ファイルを指定するには、databindings.cpxファイルのTopLinkSessionsXMLFileNameパラメータを使用します。

例19-2 TopLinkSessionsXMLFileNameオプションの指定

...
<Parameter
   name="TopLinkSessionsXMLFileName"
   value="META-INF/sessions.xml"
</Parameter
...

19.2.3 順序付けの指定

デフォルトでは、TopLink作業ユニット(3.8項「作業ユニットでのオブジェクトの作成と変更」を参照)は、コミット操作中に順序番号を割り当てます。しかし、コミット操作の前に、ユーザー・インタフェースに順序番号を表示しなければならない場合があります。

たとえば、順序番号が、ユーザーに表示されるフォームのIDフィールドの値として使用される場合、トランザクションをコミットする前に順序番号が必要です。

この問題を解決するには、databindings.cpxファイルのTopLinkSequenceOnCreateパラメータを使用して、作成トランザクションのコミット操作中の順序番号の割当てを無効にします。

例19-3 ToplinkSequenceOnCreateオプションの指定

...
<Parameter
   name="TopLinkSequenceOnCreate"
   value="False"
</Parameter
...

19.3 関連のメソッド・アクセスの構成

デフォルトでは、TopLinkマッピングでは直接アクセスを使用して、public属性にアクセスします。データベースにオブジェクトの属性を書き込む場合やオブジェクトの属性をデータベースから読み取る場合に、getterおよびsetterメソッドを使用してオブジェクトの属性にアクセスすることもできます。これをメソッド・アクセスと呼びます。

図19-2は、メソッド・アクセスを使用するTopLinkのマップ済属性を示しています。

関連のメソッド・アクセスの構成方法:

  1. 構造ウィンドウでTopLinkディスクリプタから関連マッピングを選択します。

  2. マッピングの「一般」タブで、「メソッド・アクセスの使用」オプションを選択します。

    図19-2 TopLinkマッピング・エディタの「一般」タブ

    TopLinkマッピング・エディタ・ダイアログのイメージ
  3. 関連に特定のgetterおよびsetterメソッドを選択します。

19.4 TopLinkデータ・コントロールでのsessions.xmlの使用

TopLinkマップからデータ・コントロールを作成するのと同じように(19.5項「TopLinkデータ・コントロールでの複数マップの使用」を参照)、TopLinkセッション構成ファイル(sessions.xml)からデータ・コントロールを作成できます。

「TopLinkデータ・コントロール」ダイアログ(図19-3参照)を使用して「TopLinkセッション構成」を選択し、特定のセッション構成ファイル(sessions.xml)とセッションを選択します。

セッション構成ファイル(sessions.xml)からTopLinkデータ・コントロールを作成する方法:

  1. ナビゲータ・ウィンドウでsessions.xmlファイルを右クリックし、「データ・コントロールの作成」を選択します。

  2. 「TopLinkデータ・コントロール」ダイアログで、「TopLinkセッション構成」オプションを選択します。

    図19-3 TopLinkデータ・コントロールの作成(「セッション構成」から)

    TopLinkデータ・コントロールの作成イメージ
  3. 特定のセッション構成ファイルとセッションを選択(または新規構成を作成)します。マップされたクラスのデータ・コントロールを作成できます。

19.5 TopLinkデータ・コントロールでの複数マップの使用

複数のTopLinkマップを作成して、各プロジェクトで使用できます。各マップは、図19-4に示すように、特定のデータベースおよび接続に関連付けることができます。

図19-4 「オブジェクト・リレーショナル・マップの作成」ダイアログ

「オブジェクト・リレーショナル・マップの作成」ダイアログのイメージ

sessions.xmlファイルからデータ・コントロールを作成するのと同じように(19.4項「TopLinkデータ・コントロールでのsessions.xmlの使用」を参照)、TopLinkマップからデータ・コントロールを作成できます。

「TopLinkデータ・コントロール」ダイアログ(図19-5参照)を使用して、「TopLinkマップ」を選択し、特定のマップを選択します。

TopLinkマップからTopLinkデータ・コントロールを作成する方法:

  1. ナビゲータ・ウィンドウでsessions.xmlファイルを右クリックし、「データ・コントロールの作成」を選択します。

  2. 「TopLinkデータ・コントロール」ダイアログで、「TopLinkマップ」オプションを選択します。

    図19-5 TopLinkデータ・コントロールの作成(「TopLinkマップ」から)

    「TopLinkデータ・コントロール」ページのイメージ

  • 特定のTopLinkマップを選択します。

  • 特定のセッション構成ファイルとセッションを選択(または新規構成を作成)します。マップされたクラスのデータ・コントロールを作成できます。

  • 19.6 特定のJDKバージョンを使用したTopLinkクラスのコンパイル

    デフォルトでは、TopLinkクラスのコンパイル時、JDeveloperは関連にJDK 1.5汎用コレクション・タイプを使用します。異なるJDKバージョン(1.4など)を使用してプロジェクトをコンパイルするとエラーが発生します。

    TopLinkマッピングを生成する前に、プロジェクトのデフォルトのJSEEライブラリを変更する必要があります。「デフォルト・プロジェクト・プロパティ」ダイアログの「ライブラリ」ページで「変更」をクリックして、プロジェクトの新しいJ2SE定義を選択します。「ライブラリの管理」ダイアログの「J2SE定義の編集」ページ(図19-6を参照)で、使用するJ2SE定義を選択するか、新しく作成します。

    図19-6 「J2SE定義の編集」ページ

    新しいJDKライブラリを表示する「J2SE定義の編集」ダイアログのイメージ