EJB 關係

在 EJB 工具中,您可以利用 EJB 部署描述子編輯器來選擇性地定義不同 Enterprise Bean 之間的關係。

重要: EJB 1.x 關係是 WebSphere® 延伸,EJB 2.x 關係則是 EJB 2.x 部署描述子的一部分。 請從不同的位置來開啟兩個關係層次所適用的不同精靈。

關係有三種主要類型:

在一對一 (1:1) 關係中,一個 CMP Entity Bean 關聯於另一個 CMP Entity Bean 的單一實例。 比方說,Employee Bean 只能關聯於一個 Employee ID Bean 的單一實例, 因為,一個員工在檔案中只有一個員工識別碼。

在一對多 (1:M) 關係中,一個 CMP Entity Bean 關聯於另一個 CMP Entity Bean 的多重實例。 比方說,Department Bean 可以關聯於 Employee Bean 的多重實例,因為大部分部門都由多個員工組成。

在多對多 (M:M) 關係中,一個 CMP Entity Bean 的多重實例關聯於另一個 CMP Entity Bean 的多重實例。 比方說,Customer Bean 的多重實例可以關聯於 Restaurant Bean 的多重實例, 因為餐廳可以提供服務給許多客戶,客戶也可以光顧許多家不同的餐廳。 如果是 EJB 1.1 CMP Entity Bean,多對多關係需要使用鏈結 Bean。這個鏈結 Bean 會藉由建立每一個 Bean 到鏈結 Bean 的 1:M 關係, 來放在兩個 Enterprise Bean 的中間。如果是 EJB 2.0 CMP Bean,則不需要建立鏈結 Bean,因為在執行由上而下的對映期間,會自動處理鏈結表的建立。

在定義關係時,您要相對於其他 Bean 來指定每個 Bean 的角色,並指定角色的名稱。比方說,假設您要建立 Employee 和 EmployeeID 之間的關係。EmployeeID 在 Employee Bean 之中的角色可能是 idemployeeID 之類的東西。Employee 在 EmployeeID Bean 內的角色可能是 employeeowner 之類的東西。這些名稱的用途是在產生的程式碼中衍生方法名稱,且成為 Enterprise Bean 遠端介面的一部分。

如果是 EJB 2.x 關係,則是利用 cmr-field 元素來產生方法。

當 CMP 欄位和關係最後對映至資料庫表格時,會使用外來鍵來代表資料庫表格中的關係。之後,您可以賦予 Enterprise Bean 索引鍵關係角色, 使關係中所代表的外來鍵成為索引鍵類別的一部分。

如果要將角色新增至 Bean 的索引鍵中,它必須具備單一對應關係,且本身必須是必要的(如 1..1)。另外,擁有角色的 Bean 也必須選取「外來鍵」勾選框。EJB 2.x CMP Entity Bean 的規則也是一樣,不過,對應關係是 1,因為需求測試沒有下界。 請注意:外來鍵勾選框用來指定哪一個 CMP Entity Bean 的對映表應包含外來鍵直欄。CMP Entity Bean 是角色的來源 Enterprise Bean。

在上述範例中,如果對應關係是 1..1,且 Employee 已選取「外來鍵」勾選框,則 employeeID 角色可以成為 Employee 索引鍵的一部分。 同樣,將角色標示為必要的(如 1..x)也會將角色的類型當作參數而新增至 Home 介面的 create 方法中。在 EJB 2.x 關係中,如果您選取了可導覽的勾選框,CMR 欄位便是必要的。針對具有本端用戶端視圖的 CMP, 您僅能選取「可導覽的」。關係只能定義給 EJB 版本相同的 CMP Entity Bean。您不能建立 EJB 1.x 和 EJB 2.x CMP Entity Bean 之間的關係。

建立 EJB 2.x 關係的精靈會顯示關係的 UML 視圖和規格視圖。請注意,規格視圖中所說明的對應關係對應於 EJB 2.0 規格中的規則。 由於角色的對應關係相對於關係,但在 UML 視圖中,它是相對於程式碼 Enterprise Bean,因此,對 UML 視圖而言,它是倒退的。

相關工作
定義 Bean 關係
建立 EJB 2.0 Bean 的關係
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.