Update 操作

Update 操作は、着信ビジネス・オブジェクトを、 最上位の着信ビジネス・オブジェクトで指定された基本キーを使用して データベースから検索されたビジネス・オブジェクトと比較することによって 実行されます。

アダプターでは、 階層ビジネス・オブジェクトの更新時に、以下のステップを実行します。
  1. ソース・ビジネス・オブジェクトの基本キー値を使用して、 データベース内の対応するエンティティーを検索します。検索されたビジネス・オブジェクトは、データベース内のデータの現在の状態を正確に表したものです。

    検索が失敗した場合 (最上位ビジネス・オブジェクトがデータベース内に存在しないことを意味します)、アダプターは RecordNotFoundException エラーを戻し、更新は失敗します。

    検索に成功した場合、アダプターは、 検索されたビジネス・オブジェクトをソース・ビジネス・オブジェクトと比較して、どの子ビジネス・オブジェクトに関して データベースに変更を加える必要があるかを判別します。ただし、アダプターはソース・ビジネス・オブジェクトの単純属性の値と検索されたビジネス・オブジェクトの単純属性の値を比較しません。 アダプターは、非キーの単純属性すべての値を更新します。

    最上位ビジネス・オブジェクトのすべての単純属性がキーを表している場合、 アダプターはその最上位ビジネス・オブジェクト用の更新照会を生成できません。 この場合、アダプターは、警告を記録してからステップ 2 に進みます。

  2. 最上位ビジネス・オブジェクトの子のうち、単一カーディナリティー のものすべてを再帰的に更新します。

    ビジネス・オブジェクト定義上、ある属性がある子ビジネス・オブジェクトを表すことが必須である場合には、その子ビジネス・オブジェクトがソース・ビジネス・オブジェクトと検索されたビジネス・オブジェクトの両方に存在している必要があります。 存在しない場合、Update 操作は失敗し、アダプターはエラーを戻します。

    アダプターでは、所有関係にある単一カーディナリティーの子を、 次のいずれかの方法で処理します。
    • ソース・ビジネス・オブジェクトおよび検索した ビジネス・オブジェクトの両方に子が存在する場合、アダプターは、 データベース内の既存の子を更新するのではなく、既存の子を削除して新規の子を作成します。
    • その子がソース・ビジネス・オブジェクトには存在するにもかかわらず、 検索されたビジネス・オブジェクトには存在しない場合、アダプターはデータベース内にその子を再帰的に作成します。
    • その子が検索されたビジネス・オブジェクトには存在するにもかかわらず、 ソース・ビジネス・オブジェクトには存在しない場合、アダプターはデータベース内のその子を再帰的に削除します。
    所有関係にない単一カーディナリティーの子に関しては、 アダプターは、ソース・ビジネス・オブジェクトに存在するそのような子のすべてを、 データベースから検索しようとします。アダプターは、子の検索に成功すると、 その子ビジネス・オブジェクトにデータを読み込みますが、更新は行いません。 これは、所有関係にない単一カーディナリティーの子はアダプターによって 変更されることがないためです。
  3. 検索されたビジネス・オブジェクトのすべての単純属性を更新します。ただし、ソース・ビジネス・オブジェクト内の対応する属性が指定されていない場合を除きます。

    更新されるビジネス・オブジェクトは一意である必要があるため、 アダプターは、結果として 1 行のみが処理されることを確認します。 複数の行が戻されている場合、アダプターはエラーを戻します。

  4. 検索されたビジネス・オブジェクトの複数カーディナリティーの子のそれぞれを、 次のいずれかの方法で処理します。
    • その子がソース・ビジネス・オブジェクトの配列と 検索されたビジネス・オブジェクトの配列の両方に存在する場合、アダプターは データベース内でその子を再帰的に更新します。
    • その子がソース・ビジネス・オブジェクトの配列には存在しても、 検索されたビジネス・オブジェクトの配列には存在しない場合、アダプターは データベース内でその子を再帰的に作成します。
    • その子が検索されたビジネス・オブジェクトの配列には存在しても、 ソース・ビジネス・オブジェクトの配列には存在しない場合、アダプターは データベースからその子を再帰的に削除します。ただし、親に含まれている、 その子を表す属性のアプリケーション固有情報で 、KeepRelationship が true に設定されている場合を除きます。この場合、アダプターは、データベースからその子を削除しません。
関連概念
Create 操作
Retrieve 操作
RetrieveAll 操作
DeltaUpdate 操作
Delete 操作
ApplyChanges 操作
Execute 操作

ご利用条件 |


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