避免重疊對映

在某些情況下,對映工具可讓您對映資料庫中的直欄兩次,一次是被當作屬性對映,一次是在關係角色中對映。這種情況可被視為對映重疊。這種重疊可能會導致資料完整性的問題。因此,最好避免重疊與資料庫元素的對映。

請考慮下面這個可以用對映工具建立的重疊對映範例:
  • Bean1 的索引鍵欄位被對映到 Table1 的 PK1(主鍵)欄,而 Bean2 的索引鍵欄位被對映到 Table2 的 PK2 欄。Table2 中有一個 FK2(外部索引鍵)欄,指向 Table1 的 PK1 欄。您在 Bean1 和 Bean2 之間建立關係,再利用 Table2 中的 FK2 欄來對映這個關係。
  • 接著再將 Bean2 中的簡式 CMP 屬性,直接對映到 Table2 中的 FK2 欄。因此 FK2 欄現在就被對映了兩次,一次是被當作對映的屬性,另一次則被當作兩個 Bean 之間的對映關係。一旦直欄或表格變更之後,這種重疊可能就會產生問題。
  • 比方說,如果您在 Bean2 中使用 setter 來變更 FK2 欄(該欄亦為外部索引鍵),並且儲存這項變更,則下次您重新載入 Bean 時,這些 Bean 應該已經改變關係了。或者,如果您變更關係,讓 Bean2 指向 Bean1 的另一個實例,Bean2 的屬性是不會反映這項變更的。
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.