避免重叠映射

在某些情况下,映射工具允许您映射数据库中的一列两次,一次作为属性,一次在关系角色中。这又称为映射中的重叠。这种重叠可导致数据完整性问题。由于此原因,应避免对数据库元素的映射重叠。

考虑以下重叠映射的示例,这可能是使用映射工具造成的:
  • Bean1 具有映射至 Table1 的 PK1(主键)列的键字段,而 Bean2 具有映射至 Table2 的 PK2 列的键字段。Table2 包括指向 Table1 的 PK1 列的 FK2(外键)列。可以创建 Bean1 与 Bean2 之间的关系并使用 Table2 中的 FK2 列映射此关系。
  • 然后直接将 Bean2 中的简单 CMP 属性映射至 Table2 中的 FK2 列。现在,FK2 列映射了两次,一次作为已映射属性,一次作为两个 bean 之间的已映射关系。如果这些列或表更改,则此重叠可导致问题。
  • 例如,如果在 Bean2 中使用 setter 来更改 FK2 列(它也是外键)然后保存此更改,则下次重新装入 bean 时它们将更改关系。或者,如果更改关系以使 Bean2 现在指向 Bean1 的另一个实例,则 Bean2 中的属性将不会反映该更改。
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.