ADF対応Webページを作成する際、入力フォームを使用し、そのページのADFバインディング・コンテナに対する検索モードを有効にすることによって、ADF Business Componentsに対するパラメータ付き問合せをサポートできます。 ADFバインディング・コンテナは、ADFイテレータ・バインディングによって指定されたビュー・オブジェクトの属性に対して、フォームで指定された検索条件を使用するパラメータ付き問合せを実行することによって、検索操作をサポートします。
注意: ADF Business Componentsの属性がオブジェクト型、配列型およびLOBドメイン型である場合は、検索モードを開始できません。
検索操作が実行されると、バインディング・コンテナは検索モードを終了し、Webページは入力エントリ・フォームとして機能するようになります。この方法で、バインディング・コンテナは特定のWebページの検索モードを有効または無効に切り替えます。
イテレータ・バインディングは、次の要素を提供することにより、基本的なデータ反復機能に加えて、バインドされたデータ・コレクションとも連携して、アプリケーション・データに対する例による問合せ機能の実装を単純化します。
Oracle ADFでは、各データ・コレクションに、0(ゼロ)以上のビュー基準行のビュー基準(ViewCriteria)コレクションが関連付けられています。 各ビュー基準行(ViewCriteriaRow)の属性構造は、関連するデータ・コレクション内の行と同じです。ただし、属性値はすべて文字列データ型として処理されます。 このデータ型では、ユーザーは比較演算子およびワイルドカード文字を含む問合せ基準を入力できます。
たとえば、部門番号が5より大きく、部門名が文字列「ACC%」と一致するすべての部門を検索するよう指定するには、よくあるSCOTTスキーマのDEPT表に対する問合せに基づき、DeptViewコレクションに関連するビュー基準行の属性を入力します。次のようになります。
イテレータ・バインディングの検索モードにより、例による問合せ機能用のビュー基準コレクションの属性を移入する検索ページを簡単に作成できます。 イテレータ・バインディングが検索モードで機能するように設定されている場合、関連するビュー基準コレクションに対して別の行セット・イテレータを使用するよう切り替えられます。つまり、検索モードが有効である場合、イテレータ・バインディングを参照するコントロール・バインディングにより、現在のビュー基準行内の属性が表示および更新されます。同様に、検索モードでイテレータ・バインディングを参照する範囲バインディングにより、現在の例による問合せのビュー基準行の表をレンダリングできます。
検索モードが無効である場合、イテレータ・バインディングは、データ・コレクションに対して元の行セット・イテレータを使用するよう切り替えられます。 これは、イテレータ・バインディングのsetFindMode()
メソッドをコールすることで明示的に、またはexecuteQuery()
メソッドをコールすることで暗黙的に実行できます。
注意: 検索モードにおいてイテレータ・バインディングの行セット・イテレータでcreateRow()
メソッドをコールすることで、追加のビュー基準行を作成し、続いてビュー基準行の属性に追加基準を移入できます。 デフォルトのセマンティクスでは、同じビュー基準行の例による問合せ基準は論理的にAND処理される一方で、別個のビュー基準行から生じる基準は、論理的にOR処理されます。 実作業では、複数のビュー基準行の使用は一般的な使用例ではありませんが、知っておくことで機能の理解に役立ちます。 ただし、ユーザーが検索モードに入った後は、元のコレクションで行を作成できません。 ビュー基準に含まれない行を作成できるのは、ユーザーが検索モードを終了したときのみです。
ADFイテレータ・バインディングで、選択したバックエンド・データ・コントロールの種類に関係なく検索モード機能が提供されますが、現状ではADF Business Componentsデータ・コントロールにかぎり、実行時にビュー基準行のビュー基準コレクションが自動的に使用されます。 このイテレータ・バインディングのビュー基準機能は、ADF Business Componentsデータ・コントロールからその基礎であるADFビュー・オブジェクトに委譲されます。このADFビュー・オブジェクトは、ビュー基準行に基づいて適切なSQL WHERE句の述語を自動的に作成することで、例による問合せ基準を実装します。
現在、他のデータ・コントロール・タイプでは、ViewCriteriaコレクションから例による問合せ基準を読み込み、これらの基準を適切なランタイム検索実装に変換する、カスタム・コーディングを含むサブクラス化されたデータ・コントロール実装が必要です。
パラメータ付き問合せは、実行時に値が指定されるプレースホルダが含まれた問合せです。 たとえば、次のPL/SQL文のmin_salary
は、パラメータ値のプレースホルダで、実行時に値が指定されます。
SELECT ename, job, mgr FROM emp WHERE sal < :min_salary
検索モードの入力フォームではADFバインディングを使用して、バインドされたビジネス・コンポーネント・ビュー・オブジェクトの属性のうち、Queriable
プロパティがtrue
に設定されている属性に対してフィールドを表示します。ビュー・オブジェクトは、ビジネス・コンポーネントにより実行される最初の問合せを定義します。
StrutsベースWebアプリケーションでは、ユーザーは検索モードを備えた入力フォームに対し次の操作をします。
ユーザーが表示した入力フォーム付きのWebページが、検索モード有効で動作します。
たとえば、ユーザーが特定のリンクをクリックすることにより、検索モードが有効になっているページが開きます。どのように検索モードを有効にするかは、アプリケーション設計時の決定事項です。詳細は、後述の関連項目を参照してください。
ユーザーが、データの結果を絞り込むための検索条件を入力します。
ユーザーは、比較記号(>、<、=)を適宜入力できます。 同じビュー基準内のすべての値が検索に含められます。
ユーザーがフォーム上の「Execute」ボタンをクリックすると、アンカー付きのワイルドカード検索を実行するStrutsアクションに対する検索操作が開始されます。
この操作では検索列の先頭文字がアンカーとして使用され、入力した文字列で始まるすべての文字列が検索されます。
Strutsアクションが他のページにフォワードされ、そこで読取り専用の表に、パラメータ付き問合せの結果が表示されます。
Oracle ADF Business Componentsでのビュー基準の使用方法の詳細は、JavaDocで次のクラスを参照してください。
oracle.jbo.ViewCriteria
Copyright © 1997, 2004, Oracle. All rights reserved.