RetrieveAll 操作

アダプターは、RetrieveAll 操作を使用してデータベースから ビジネス・オブジェクトの配列を検索します。処理は、RetrieveAll 操作が データベース表ビジネス・オブジェクトとユーザー指定 SQL ビジネス・オブジェクトの いずれを対象としているかに応じて異なります。

データベース表ビジネス・オブジェクトの場合

着信ビジネス・オブジェクト内に 取り込まれているすべてのキー属性および非キー属性によって、 選択基準が決まります。選択した属性によっては、アダプターは、 データベースから最上位ビジネス・オブジェクトの複数の行を 検索する場合もあります。着信ビジネス・オブジェクト内に属性が 取り込まれていない場合は、データベース内のそれぞれのテーブルから すべての行が検索されます。

アダプターは次のステップを実行して ビジネス・オブジェクトの配列を検索します。
  1. データベースから検索された行ごとに、アダプターは最上位ビジネス・ グラフを構成し、検索された行をすべて使用してビジネス・グラフのコンテナーを 作成します。コンテナー・ビジネス・オブジェクトの 名前は BONameContainerBG です。
  2. アダプターは、Retrieve 操作を使用してコンテナー内の 各ビジネス・グラフを取得します。
図 1. RetrieveAll 操作で戻されるビジネス・オブジェクトの構造
この図の上部には CustomerContainerBO というタイトルのボックスがあります。このボックスから下方に線が伸びています。この線には、右側に伸びる枝が 2 つあります。最初の枝では、2 つのボックスが線でつながれています。
最初のボックスの名前は CustomerBG、2 番目のボックスは Customer です。Customer ボックスから Address BO ボックスに向かって下方に線が伸びています。2 本目の枝の構成は最初の枝と同じです。
RetrieveAll 操作によって、 次のエラーが発生する可能性があります。

ユーザー指定 SQL ビジネス・オブジェクトの場合

ユーザー指定 SQL ステートメントに対して作成されたビジネス・オブジェクトも RetrieveAll 操作を サポートします。エンタープライズ・サービス・ディスカバリー (ESD) ウィザードが ユーザー指定 SQL ステートメントに対するクエリー・ビジネス・オブジェクトを生成すると、 アダプターは SQL SELECT ステートメントを実行し、下図に示す構造で データベースにデータを返します。

図 2. ユーザー指定 SQL ビジネス・オブジェクト
この画像については周囲のテキストで説明しています。
ESD によってユーザー指定 SELECT ステートメントに生成されたクエリー・ビジネス・オブジェクトを 処理するために、アダプターは以下のように動作します。
  1. クエリー・ビジネス・オブジェクトから SELECT SQL ステートメントを取得します。
  2. クエリー・ビジネス・オブジェクトで動的 where 文節が指定されているかどうかを 検査します。
    • 動的 where 文節がある場合、アダプターは、SELECT ステートメントの デフォルト where 文節をその動的 where 文節で置換します。
    • 動的 where 文節がない場合、アダプターは、SELECT ステートメントの パラメーターをクエリー・ビジネス・オブジェクトで指定された 対応する値で置換します。
  3. SELECT ステートメントを実行します。
  4. 返された結果セットを取得し、クエリー・ビジネス・オブジェクト値に データベースから返されたデータを設定し、前記の図に示した構造の コンテナー・ビジネス・オブジェクトを作成します。
  5. クエリー・ビジネス・オブジェクトに子ビジネス・オブジェクトが 定義されているかどうかに応じて、コンテナー内の各最上位クエリー・ビジネス・オブジェクトの 下降検索を実行します。
    注: クエリー・ビジネス・オブジェクトを最上位ビジネス・オブジェクト以外に することはできません。クエリー・ビジネス・オブジェクトが子クエリー・ビジネス・オブジェクトを持つことはできません。
関連概念
Create 操作
Retrieve 操作
Update 操作
DeltaUpdate 操作
Delete 操作
ApplyChanges 操作
Execute 操作

ご利用条件 |


(c) Copyright IBM Corporation 2005, 2006.
(C) Copyright IBM Japan 2006
このインフォメーション・センターでは Eclipse テクノロジー (http://www.eclipse.org) が採用されています。