マップ重複の回避

マッピング・ツールでは、1 つの列をデータベース内で 2 回 (1 回は属性として、もう 1 回は関係役割として) マップできる場合があります。 これをマッピングにおけるオーバーラップと呼びます。 このオーバーラップにより、データ保全性の問題が生じることがあります。 そのため、データベース・エレメントへのマッピングの重複を回避する必要があります。

マッピング・ツールで作成されることのあるオーバーラップ・マッピングについて、次の例を考えてください。
  • Bean1 には Table1 の PK1 (主キー) 列にマップされるキー・フィールドがあり、Bean2 には Table2 の PK2 列にマップされるキー・フィールドがあります。 Table2 には FK2 (外部キー) 列があり、Table1 の PK1 列を指しています。 Bean1 と Bean2 間に関係を作成し、Table2 の FK2 列を使用してこの関係をマップします。
  • 次に、Bean2 の単純 CMP 属性を Table2 の FK2 列に直接マップします。 こうすると、FK2 列は、2 回 (1 回はマップされた属性として、もう 1 回は 2 つの Bean 間のマップされた関係として) マップされることになります。 列または表が変更されると、このオーバーラップが問題を招くことがあります。
  • 例えば、Bean2 で setter を使用して FK2 列 (これも外部キーです) を変更してから、この変更を保存すると、次回に Bean を再ロードしたときにそれらの Bean の関係が変更されます。 または、Bean2 が Bean1 の別のインスタンスを指すように関係を変更した場合は、Bean2 内の属性はその変更を反映しません。
ご利用条件 | フィードバック
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved. (C) Copyright IBM Japan 2005