您好,登錄后才能下訂單哦!
今天書要還了,最后總結一下實體bean。
實體bean中除了要放來自home及組件接口的方法和來自EntityBean接口方法外,還有一樣:虛持久字段。這個到時會和部署文件有關聯。
實體bean很大的不同點在于實體bean的create() 及 remove() 。容器不會建立一個新的實體bean,而是會從池中取出一個來運行ejbCreate() 方法。客戶調用這個方法在數據庫中插入一個新行,但對客戶來說,最終結果還是一個EJB對象引用。你可以想象出一般create()都是有參數的,要不然插入了新行豈不是一片空白。
另外會話bean上的remove()意味著客戶用完了這個bean,而實體上的remove()意味著所有人都用完了這個bean。但實體bean的實例不會死亡,受控于容器的崩潰。
創建一個實體的步驟大致如下:
1,客戶在home樁調用create()方法。
2,容器調用ejbCreate()方法。(從池中取出一個bean)
3,數據庫插入新行。
4,新建一個EJB對象。
5,容器調用ejbPostCreate()。
這里有一個小小的知識點:create()返回的組件類型,而ejbCreate()返回的是主鍵的類型,ejbPostCreate()返回的是void類型。
最后談一下CMP實體bean的激活及鈍化。
大致步驟如下:
客戶首先調用業務方法,容器調用ejbActivate(),選擇實體數據來填充bean狀態,然后調用ejbLoad()方法。此時,EJB對象就在bean上調用方法,并取得返回值。
當完成一個業務方法時,容器調用ejbStore(),更新實體數據,最后調用ejbPassivate(),bean回到池中。
從中可以看出與有狀態的會話bean區別在于,實體bean的鈍化只是回到池中,而會話的則是暫時保存起來。
[@more@]免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。