索引鍵類別是用來建立或尋找 Entity Bean。它代表關聯式資料庫中某一列之主鍵 直欄所對應的 Entity Bean 身分。在對應到這些直欄之一的 Entity Bean 中,每個指定的儲存器管理欄位 都稱為索引鍵欄位。
指定主鍵類別的主要方法有兩種:
如果是 1.1 CMP Bean,Bean 類別中的每一個索引鍵欄位,都必須是索引鍵類別中具有相同名稱與類型的欄位; 反之,針對索引鍵類別中的每一個欄位,在 Bean 類別中必須有相同名稱和類型的欄位, 且這些欄位都被視為是索引鍵欄位。如果是 2.x CMP Bean,每個索引鍵欄位都必須有 get 和 set 方法。
比方說,假設您的銀行業應用系統有一個 EJB 1.1 Account Bean。accountNumber 內容已指定為索引鍵欄位,它對應於 ACCOUNT 資料庫表格的主鍵。Account (AccountKey) 的索引鍵類別包含下列項目:
Account 可以使用 java.lang.String 的索引鍵類別及 accountNumber 的主鍵欄位來替代 AccountKey。
對於所有繼承的 Enterprise Bean 而言,索引鍵類別是共通的。這表示母 Enterprise Bean 的索引鍵類別亦用於其所有子項 Enterprise Bean。因此,如果包含子類型之實體的索引鍵類別有了改變,或繼承結構有了改變, 所有子類型實體對應的 Home 和 Bean 類別都會重新產生。 索引鍵類別只能在相同繼承階層的 Bean 之間共用。
如果有些角色是索引鍵的一部分,且該角色之 Enterprise Bean 類型的索引鍵樣式有了改變(新增或移除索引鍵), 則會出現一個對話框,可將這些變更延伸到所有的索引鍵角色。在大部分情況下,您都應該選取是或全部皆是。如果您不將變更延伸到所有索引鍵角色,可能會導致編譯錯誤。
EJB 工具開發目前不支援 EJB 2.0 規格所說明的不明主鍵定義。暫行解決方法是定義特定的主鍵類別。