CMP 1.x 關係不符合 EJB 1.x 規格標準。因此建立 WebSphere® Application Server 延伸,處理 1.x 關係。
您可以使用 EJB 部署描述子編輯器, 指定 EJB 專案或模組中兩個 Enterprise Bean 之間的關係。EJB 部署描述子編輯器會產生適當 finder 方法, 支援所建立的任何關係。
當您定義兩個 CMP 之間的關係時, 額外 CMP 欄位 (根據參照 CMP Bean 的索引鍵欄位) 會新增至向前參照角色的擁有 CMP Bean (在擁有 CMP Bean 上,已選取「外來索引鍵」勾選框)。
例如, 公司對員工有 1..N 個關係,並且分別具有公司及員工角色。公司角色是正向, 並且 Company CMP Bean 有名為 "companyID" 及 "companyName" 的索引鍵欄位。自動新增至 Employee Bean 的 CMP 欄位是 "company_companyID" 及 "company_companyName"。 在 EJB 編輯器中,會隱藏這些欄位,因為只為了支援「員工」關係角色, 新增它們。如果從 ejb-jar.xml 檔案中刪除這些 CMP 欄位, 但關係仍存在時,就會發生問題。
隨附於 Rational® Application Developer 的 AutoWorld 範例專案中, 可以看見更多範例關係。下圖顯示 EJB 部署描述子編輯器「關係」頁面上的「車庫-車輛」關係細節。單一車庫中可以停放多部車輛, 所以對應關係指示多 (0..*) 對 1 (0..1) 的關係。
建立精靈會顯示關係的 UML 視圖, 並且根據 UML 模型修改欄位。建立關係時,同時會建立其他類別, 以支援執行時期維護這兩個 Bean 之間的鏈結。此外,也會產生其他方法, 並放入這兩個 Enterprise Bean 的 Home、Remote 及 Bean 類別。當初次建立關係時, EJB 部署描述子編輯器中會出現編譯錯誤,因為產生的 Link 類別需要編譯。您會看到這些檔案的實際程式碼, 但 Home、Remote 及 Bean 類別中的變更尚未編譯。等到建置專案時,才會發生編譯; 通常在儲存 EJB 部署描述子編輯器時,會自動發生這個動作。 因此,儲存編輯器之後,便不會看到編譯錯誤。
若要建立兩個 Enterprise Bean (CMP 1.x ) 之間的關係: