首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2EE

Entity Bean 核心機制:持久化實體、Finder 方法與主鍵管理

     編輯:J2EE

Entity Bean 角色定位

Entity Bean 代表底層持久資料,最常見對應關聯式資料庫記錄。簡單 Bean 對應單一資料表列,複雜 Bean 可對應多表關聯視圖。建議單一 Bean 對應單一資料表,再透過關聯擴展,利於快取重用與資料一致性。

Entity Bean vs Session Bean

特性Session BeanEntity Bean
代表對象商業流程/工作單元持久資料實體(資料庫列)
客戶端關係專屬一客戶端 (1:1)多客戶端共享 (多:1)
狀態保存客戶端會話狀態資料實體狀態
交易控制可管理跨 Bean 交易參與交易,不主導全域交易

最佳實踐:客戶端 → Session Bean(流程控制、交易邊界) → Entity Bean(資料存取)。

Finder 方法:尋找現有實體

Entity Bean 不以建立/刪除為生命週期核心(對應資料庫 INSERT/DELETE),客戶端透過 Home 介面的 Finder 方法定位實體。Finder 方法命名規則:findBy<條件>,回傳遠端介面參考或列舉。

Bean 類別實作對應 ejbFindBy<條件>,回傳主鍵或主鍵列舉。容器根據主鍵建立/重用 EJBObject,確保同一資料記錄對應唯一 EJBObject 實例,所有客戶端共享。

主鍵:實體身分的唯一標識

  • 部署描述符指定主鍵類別,須實作 Serializable
  • 主鍵儲存於 EJBObject,Bean 實例本身無狀態
  • 容器可延遲實例化 Bean(呼叫商業方法時才載入),節省記憶體
  • Finder 只回傳主鍵,不包含其他資料欄位
  • 客戶端可透過 getPrimaryKey() 取得主鍵,後續用 findByPrimaryKey() 重建參考

Home Object 保證提供的方法

  • findByPrimaryKey(Object key)
  • 繼承自 EJBHome 的 remove(Object primaryKey)、remove(Handle)、getEJBMetaData()

主鍵類別設計彈性大,可為單一欄位或複合鍵,關鍵在於唯一識別資料記錄。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved