建立具有儲存器管理持續性 (CMP) 的 Entity Bean

您可以使用「建立 Enterprise Bean」精靈,建立 CMP Entity Bean。

如果要建立具有儲存器管理持續性 (CMP) 的 Entity Bean,請執行下列動作:

  1. 在 J2EE 視景中,按一下檔案 > 新建 > Enterprise Bean。 這時會出現「建立 Enterprise Bean」精靈。
  2. 選取具有儲存器管理持續性 (CMP) 的 Entity Bean 圓鈕。
  3. 選取您要新增 Bean 的 EJB 專案
  4. Bean 名稱欄位中,輸入您要指派給 Enterprise Bean 的名稱。依照慣例,Bean 名稱開頭應該是大寫字母。
    註: 您可以利用 Unicode 字元來作為 Bean 名稱,但 Enterprise Bean 所關聯的 Enterprise Bean 套件和類別沒有 Unicode 字元的支援。
  5. 來源資料夾欄位中,選取新 Bean 的來源資料夾。
  6. 預設套件欄位中,輸入新 Bean 的套件名稱。
  7. 如果您要將 Bean 新增至 EJB 2.0 或更新的專案中,請在 CMP 版本下拉清單中,選取新 Entity Bean 所要使用的 EJB 規格層次。
  8. 選擇性的: 如果是 EJB 2.x Bean,您可以選取產生含註解的 Bean 類別 如果您選取這個選項,精靈會在 Bean 類別的 Java™ 程式碼開頭產生註釋。這些註釋會依照精靈所指定來定義 Bean 的實作。 之後,EJB 工具會利用這些註釋來產生必要的 Bean 類別,以及提供插入 EJB 部署描述子 (ejb-jar.xml) 的值。如果您熟悉註釋,且想要利用註釋而不是部署描述子來更新 Bean,請選取這個選項。

    如果需要詳細資訊,請參閱註釋型程式設計概觀

  9. 下一步
  10. 如果您要新 Bean 繼承相同 EJB 專案相同類型的現有的 Bean,請在 Bean 超類型下拉清單中選取一個 Bean。
  11. Bean 類別欄位中,輸入 Bean 類別所需要的套件和類別名稱。 依預設,精靈會根據您定義的 Bean 名稱和預設套件來建議一個 Bean 類別。Bean 類別可以是精靈所產生的新類別,也可以是專案類別路徑中的現有類別。請按一下類別按鈕來開啟對話框,其會列出專案中對應於 Bean 類型的類別。針對具有程式碼的現有類別,Bean 類別的名稱會以藍色顯示。針對現有的二進位類別,Bean 類別的名稱會以紅色顯示。
  12. 定義用戶端視圖和介面。如果是 EJB 2.0 或更新的 Bean,您可以併入遠端用戶端視圖、本端用戶端視圖,或同時併入這兩者。 如果是 EJB 1.1 Bean,就只支援遠端用戶端視圖。每個 Session Bean 或 Entity Bean 都必須有至少一個用戶端視圖:
    • 遠端用戶端視圖:請選取這個勾選框來併入 Session Bean 的遠端用戶端視圖。

      遠端 Home 介面遠端介面欄位中,輸入遠端用戶端視圖介面要用的套件和類別名稱。精靈會利用 Bean 名稱和預設套件來建議介面套件和類別名稱的值。

    • 本端用戶端視圖:請選取這個勾選框來併入 Session Bean 的本端用戶端視圖。

      本端 Home 介面本端介面欄位中,輸入本端用戶端視圖介面要用的套件和類別名稱。精靈會利用 Bean 名稱和預設套件來建議介面套件和類別名稱的值。

  13. 定義 Entity Bean 的 CMP 屬性:
    1. 按一下新增按鈕。
    2. 指定屬性的名稱類型
    3. 選取索引鍵欄位,使屬性成為 Entity Bean 的索引鍵欄位。
    4. 依新 Bean 的用戶端視圖而定,您可以選擇將屬性的 getter 和 setter 方法提升至遠端和本端介面中。
    5. 按一下套用來建立屬性。 定義好屬性之後,請按一下關閉
    依預設,精靈會指定下列 CMP 屬性,且會將它宣告為索引鍵欄位:
    • 名稱:id
    • 類型:java.lang.Integer
    您可以編輯或移除這個屬性。
    註: 如果 Bean 不是繼承的,則需要有索引鍵。如果未定義索引鍵,Bean 會發生驗證錯誤。 建立好 Bean 之後,您可以利用部署描述子編輯器來新增索引鍵屬性,或將現有的屬性設為索引鍵。
  14. 索引鍵類別欄位中,輸入 Bean 的索引鍵類別的套件和類別名稱。依預設,會選取索引鍵類別使用單一索引鍵屬性類型勾選框,且會以索引鍵 CMP 屬性的類型為索引鍵類別。如果您有單一索引鍵屬性,且它的類型是有效的 primkey-field(如 java.lang.Integer),就可以使用這個選項。 如果您併入多個索引鍵屬性,就會建立新的複合索引鍵類別。
  15. 下一步
  16. 選擇性的: Bean Super 類別欄位中,輸入或選取所需要的類別。如果指定了 Bean 超類型,就會停用這個欄位。
  17. 選擇性的: 定義遠端或本端用戶端介面要繼承的任何介面:
    • 按一下新增按鈕來開啟「選取類型」對話框,以便選取您要繼承的介面。
    • 如果您新增了已不要繼承的介面,請在清單中選取這個介面,按一下移除
  18. 按一下完成 這時會將新的 Entity Bean 新增至指定的 EJB 專案中。
限制: 在設定繼承的 CMP Entity Bean 時,子 Bean 的 CMP 屬性,不能與在其母鏈中定義的屬性同名。 比方說,母項是 CMP Entity Bean,其中含有類型 int 的屬性 ID。 如果您利用精靈建立一個名叫 Child 的 CMP Bean, 並且將母項指定為它的超類型,然後再試圖新增至類型 int 的屬性 ID, 您會發現無法加入這個 ID 屬性,因為它會繼承母項的 ID 屬性。 如果 Child2(另一個不相關的 CMP Bean)含有類型為 java.lang.String 的屬性 ID, 並且透過部署描述子編輯器變更其繼承結構,讓它繼承自母項, 這樣一來會移除 Child2 的類型 java.lang.String 的 ID 屬性, 因為它會繼承母項的 ID 屬性, 而且可能會因為類型衝突而發生驗證錯誤。
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.