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