定義 Bean 關係

您可利用 EJB 部署描述子編輯器來指定在 EJB 模組中,兩個 Enterprise Bean 之間的關係。

重要: EJB 1.1 Bean 的關係是 EJB 1.1 規格的 WebSphere® Application Server 延伸。EJB 2.x Bean 的關係是 EJB 2.x 規格的一部分。 如果您的專案目標不是 WebSphere Application Server 執行時期環境,編輯器就不會顯示任何 EJB 1.1 關係區段。 這兩個關係層次的處理方式不同於部署描述子編輯器的不同區段。

EJB 部署描述子編輯器會產生適當的 finder 方法來支援您建立的任何關係。

當您定義從某 CMP Bean 至另一 CMP Bean 的關係時,會在擁有向前參照角色的 CMP Bean 中,加入以進行參照的 CMP Bean 之索引鍵欄位為基礎的額外 CMP 欄位(會選取作為擁有者的 CMP Bean 的「外來鍵」勾選框)。

比方說,Company 與含 company 和 employee 角色的 Employee 有一對多關係。company 角色是 forward,Company CMP Bean 有名稱為 "companyID" 和 "companyName" 的索引鍵欄位。 自動新增至 Employee Bean 的 CMP 欄位有 "company_companyID" 和 "company_companyName"。 這些欄位會隱藏在 EJB 編輯器中,因為它們是為了支援 "employee" 關係角色而新增的欄位。關係仍存在時,從 ejb-jar.xml 檔中移除了這些 CMP 欄位,就會發生問題。

建立好關係之後,會建立其他類別,以在維護這兩個 Bean 之間的鏈結時支援執行時期。 另外,也會在這兩個 Enterprise Bean 的 Home、Remote 和 Bean 類別中產生其他方法。在關係剛建立時,EJB 部署描述子 編輯器中會出現編譯錯誤,因為產生的「鏈結」類別需要被編譯。 您會見到這些檔案中實際的程式碼,但這時還沒有編譯 Home、遠端和 Bean 類別中的變更。 在建置專案之前,都不會執行這個動作;通常在儲存 EJB 部署描述子編輯器或 EJB 編輯器時,才會自動執行這個動作。 因此,在儲存編輯器時,不會出現編譯錯誤。

附註:如果有一或多個 CMP Bean 之間的關係存在,變更單一 CMP 的索引鍵外觀,可能會造成重新產生 CMP。

如果您要從 Java™ 應用程式存取 Enterprise Bean,請將下列 JAR 檔新增至類別路徑中:
  • ivjejb35.jar
  • vaprt.jar

比方說,如果您使用了關係,並呼叫遠端介面中會傳回 Enterprise Bean 列舉表的關係方法,則除非這些 JARS 檔已新增至類別路徑中,否則方法呼叫會擲出異常狀況。

相關概念
EJB 部署描述子編輯器
EJB 關係
相關工作
建立 EJB 2.0 Bean 的關係
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.