この章では、マッピング・エディタでの高度なTopLink機能の使用方法について説明します。
この章の内容は次のとおりです。
TopLinkマッピング(第3章「アプリケーション・サービスの作成と使用」で説明)では、Javaオブジェクトをデータベースにマップできます。TopLinkマッピングを作成する場合、マッピング・エディタから使用できない関数があります。これらの関数をJavaコードで実装する必要があります。詳細は、『Oracle TopLink開発者ガイド』を参照してください。
databindings.cpx
ファイルを使用して、デフォルトのTopLinkデータ・コントロールの動作を無効化または変更することができます。ここでは、次のオプションについて説明します。
databindings.cpx
ファイルのパラメータの詳細は、付録A「ADF XMLファイルのリファレンス」を参照してください。
「TopLinkDefinitionsのプロパティ」ダイアログ(図19-1を参照)を使用して、データ・コントロールでこれらのパラメータを定義します。
デフォルトでは、TopLink作業ユニット(3.8項「作業ユニットでのオブジェクトの作成と変更」を参照)は、削除操作の前に挿入操作を実行します。しかし、最初に削除操作を実行しなければならない場合があります。
たとえば、主キーが1の行を削除し、同じトランザクション内で同じ主キーを持つ新しい行を作成すると、行がすでに存在することを示すSQL例外が発生します。
この問題を解決するには、databindings.cpx
ファイルのTopLinkShouldPerformDeletesFirstパラメータを使用して、その作業ユニットでまず削除操作を強制的に実行します。
デフォルトでは、TopLinkセッション構成ファイルにはsessions.xml
という名前が付けられます。Oracle JDeveloperのマッピング・エディタを使用して、このファイルを作成できます(詳細はOracle JDeveloperのオンライン・ヘルプを参照)。
異なるセッション構成ファイルを指定するには、databindings.cpx
ファイルのTopLinkSessionsXMLFileNameパラメータを使用します。
デフォルトでは、TopLink作業ユニット(3.8項「作業ユニットでのオブジェクトの作成と変更」を参照)は、コミット操作中に順序番号を割り当てます。しかし、コミット操作の前に、ユーザー・インタフェースに順序番号を表示しなければならない場合があります。
たとえば、順序番号が、ユーザーに表示されるフォームのIDフィールドの値として使用される場合、トランザクションをコミットする前に順序番号が必要です。
この問題を解決するには、databindings.cpx
ファイルのTopLinkSequenceOnCreateパラメータを使用して、作成トランザクションのコミット操作中の順序番号の割当てを無効にします。
デフォルトでは、TopLinkマッピングでは直接アクセスを使用して、public属性にアクセスします。データベースにオブジェクトの属性を書き込む場合やオブジェクトの属性をデータベースから読み取る場合に、getterおよびsetterメソッドを使用してオブジェクトの属性にアクセスすることもできます。これをメソッド・アクセスと呼びます。
図19-2は、メソッド・アクセスを使用するTopLinkのマップ済属性を示しています。
関連のメソッド・アクセスの構成方法:
構造ウィンドウでTopLinkディスクリプタから関連マッピングを選択します。
マッピングの「一般」タブで、「メソッド・アクセスの使用」オプションを選択します。
関連に特定のgetterおよびsetterメソッドを選択します。
TopLinkマップからデータ・コントロールを作成するのと同じように(19.5項「TopLinkデータ・コントロールでの複数マップの使用」を参照)、TopLinkセッション構成ファイル(sessions.xml
)からデータ・コントロールを作成できます。
「TopLinkデータ・コントロール」ダイアログ(図19-3参照)を使用して「TopLinkセッション構成」を選択し、特定のセッション構成ファイル(sessions.xml
)とセッションを選択します。
セッション構成ファイル(sessions.xml)からTopLinkデータ・コントロールを作成する方法:
ナビゲータ・ウィンドウでsessions.xml
ファイルを右クリックし、「データ・コントロールの作成」を選択します。
「TopLinkデータ・コントロール」ダイアログで、「TopLinkセッション構成」オプションを選択します。
特定のセッション構成ファイルとセッションを選択(または新規構成を作成)します。マップされたクラスのデータ・コントロールを作成できます。
複数のTopLinkマップを作成して、各プロジェクトで使用できます。各マップは、図19-4に示すように、特定のデータベースおよび接続に関連付けることができます。
sessions.xml
ファイルからデータ・コントロールを作成するのと同じように(19.4項「TopLinkデータ・コントロールでのsessions.xmlの使用」を参照)、TopLinkマップからデータ・コントロールを作成できます。
「TopLinkデータ・コントロール」ダイアログ(図19-5参照)を使用して、「TopLinkマップ」を選択し、特定のマップを選択します。
TopLinkマップからTopLinkデータ・コントロールを作成する方法:
ナビゲータ・ウィンドウでsessions.xml
ファイルを右クリックし、「データ・コントロールの作成」を選択します。
「TopLinkデータ・コントロール」ダイアログで、「TopLinkマップ」オプションを選択します。
特定のTopLinkマップを選択します。
特定のセッション構成ファイルとセッションを選択(または新規構成を作成)します。マップされたクラスのデータ・コントロールを作成できます。
デフォルトでは、TopLinkクラスのコンパイル時、JDeveloperは関連にJDK 1.5汎用コレクション・タイプを使用します。異なるJDKバージョン(1.4など)を使用してプロジェクトをコンパイルするとエラーが発生します。
TopLinkマッピングを生成する前に、プロジェクトのデフォルトのJSEEライブラリを変更する必要があります。「デフォルト・プロジェクト・プロパティ」ダイアログの「ライブラリ」ページで「変更」をクリックして、プロジェクトの新しいJ2SE定義を選択します。「ライブラリの管理」ダイアログの「J2SE定義の編集」ページ(図19-6を参照)で、使用するJ2SE定義を選択するか、新しく作成します。