Oracle ADFビュー・リンクについて

Oracle ADFビュー・リンクは、2つのOracle ADFビュー・オブジェクト定義(リンク元とリンク先のビュー・オブジェクト)間の関係を、それぞれのビュー属性(リンク元とリンク先の属性)のセットに基づいて定義するビジネス・コンポーネントです。単純な1対多関係から複雑な多対多関係まで、様々な関係を作成できます。これにより、1つのクライアント内のデータ・コントロール間にマスター/ディテール関係を簡単に作成できます。たとえば、ビュー・オブジェクト間にビュー・リンクを作成すると、次のような関係を作成できます。

ビュー・オブジェクトはデータ・モデル・コンポーネントです。そのため、ビュー・オブジェクトの定義時にクライアントのデータ・ニーズを考慮する必要があります。関連付ける必要があるコントロールおよびそれらを管理するビュー・オブジェクトを決定してください。

ビュー・リンクの定義方法は、「問合せ結果間の関係の表現」を参照してください。

ビュー・リンク定義とビュー・リンク・インスタンス

一般に、次の区別をすることが重要です。

ビュー・リンク定義は、JDeveloperのツールを使用し、2つのビュー・オブジェクト定義に基づいて作成します。作成したビュー・リンクのインスタンスは、アプリケーション・モジュール定義にあるビュー・オブジェクト・インスタンスの関連付けに使用できます。詳細は、関連項目のトピックを参照してください。

ビュー・リンクと問合せ

ビュー・リンク定義によって2つのビュー・オブジェクト定義を関連付けます。ほとんどの場合、ビュー・オブジェクト定義には、データベースにアクセスするSQL問合せが含まれます。ビュー・リンク定義は、パラメータ付きのWHERE句を使用して問合せを関連付けます。WHERE句はリンク先のビュー・オブジェクトの問合せに追加され、リンク元の属性の値を使用して解決されます。

たとえば、次のビュー・オブジェクト定義があるとします。

次の属性および句を使用してCustOrdLinkというビュー・リンクを作成できます。

作成したCustOrdLinkを、CustomersViewの行(たとえば、Customer 101の行)およびOrdersViewのすべてと組み合せて使用し、問合せに対する行を返すことができます。

SELECT * FROM ORDERS
WHERE 101 = ORDERS.CUSTOMER_ID    

JDeveloperによって、選択した属性に基づいたパラメータ付きの問合せが作成されます。この問合せを変更しない場合は、ビュー・リンクを双方向にできます。これによって、リンク先とリンク元の属性の役割を切り替えることができます。たとえば、CustOrdLinkを双方向にすると、OrdersViewの行(たとえば、Customer 101の注文の行)およびCustomersViewのすべてと組み合せて使用し、問合せに対する行を返すことができます。

SELECT * FROM CUSTOMERS
WHERE CUSTOMERS.CUSTOMER_ID = 101    

ビュー・リンクとアソシエーション

2つのビュー・オブジェクト定義のそれぞれに少なくとも1つのエンティティ・オブジェクトの慣用名が含まれ、使用されるエンティティ・オブジェクト定義間にアソシエーションが存在する場合、そのアソシエーションに基づいてビュー・リンク定義を作成できます。

たとえば、CustomersViewおよびOrdersViewについて、次がtrueであるとします。

この場合は、リンク元とリンク先の属性を自分で作成するのではなく、CustOrdAssocに基づいてCustOrdLinkを作成できます。

この機能は、多対多のビュー・リンクを作成する場合に特に便利です。たとえば、次のビジネス・コンポーネントがあるとします。

ItemsWarehouseAssocに基づいて、ItemsWarehouseLinkビュー・リンクを作成できます。このビュー・リンクを使用して、特定の品目が格納されたすべての倉庫を取得できます(双方向の場合)。また特定の倉庫に格納されたすべての品目も取得できます。詳細は、関連項目のトピックを参照してください。


ビジネス・コンポーネントについて
Oracle ADFビジネス・ドメイン・コンポーネント、データ・モデル・コンポーネントおよび構成コンポーネントについて
ビュー・オブジェクト・インスタンスとビュー・リンク・インスタンスについて
多対多ビュー・リンク定義の作成
Oracle ADFビュー・オブジェクトについて
ビュー・オブジェクト属性について
Oracle ADFアプリケーション・モジュールについて
Oracle ADFアソシエーションについて