Hibernate應用中Java對象的狀態

臨時狀態(Transient):也叫瞬時狀態。new出來的對象,沒有被持久化處理,不處於Session緩存中的對象

  持久化狀態(Persistent):已經被持久化,加入到Session的緩存中

  遊離狀態(Detached):也叫脫管狀態。已經被持久化,但是不處在Session緩存中

  ⑴臨時對象的特征:

  不處於Session緩存中(不被任何壹個Session實例關聯)

  在數據庫中沒有對應的記錄

  進入臨時狀態的條件:

  new壹個Java對象,他處於臨時狀態,不和數據庫任何記錄關聯

  Session的delete方法能夠是壹個持久化對象或遊離對象轉變為臨時狀態;對於遊離對象,

  delete方法從數據庫中刪除與它對應的記錄;對於持久化對象,delete方法從數據庫中刪除與它對應的記錄,

  並把它從session緩存中刪除

  ⑵持久化對象的特征:

  在壹個Session實例的緩存中(與壹個Session關聯)

  持久化對象和數據庫中的相關記錄對應

  Session清理緩存時,會根據持久化對象的屬性變化,來同步更新數據庫

  進入持久化狀態的條件

  session的save方法

  session的load和get方法返回的對象都是處於持久化狀態

  session的find方法返回的List中存在的對象都是處於持久化狀態

  session的update、saveOrUpdate和lock方法使得遊離對象轉換為持久化狀態

  當壹個持久化對象關聯壹個臨時對象,在允許級聯保存的情況下,Session在清理緩存時把這個對象也轉變為持久化狀態

  ⑶遊離對象的特征:

  不再位於session緩存中(遊離對象不被Session關聯)

  遊離對象是從持久化對象轉變過來的,因此在數據庫中可能還存在與其對應的記錄

  遊離對象與臨時對象的區別在於:前者是由持久化對象轉變過來的,前者在數據庫中還存在與之對應的記錄,

  而後者在數據庫中沒有與之對應的記錄;

  進入遊離狀態的條件

  當調用session的close方法的時候,session緩存被清空,緩存中的所有持久化對象都變為遊離狀態。如果此時再沒有其它變量引用的時候,其生命周期結束

  session的evict方法能夠從緩存中刪除壹個持久化對象,使它變為遊離狀態。如果內存中存在大量的對象的時候,可以通過這個方法來刪除緩存中的對象(不建議使用這個方法,還是使用查詢的方法和常規方法來處理對象在內存 中的深度)

為了達到Administration of Symantec Enterprise Vault 9 for Exchange水準認證,考生必須通過250-309考試,要求考生在105分鐘內完成70至80道考題,達到76%就可以通過考試。考生可以選擇英語,日語作為250-309考試語種。該考試是一個技術類考試,Administration of Symantec Enterprise Vault 9 for Exchange 250-309考試成功驗證了考生對產品的技能知識的熟悉程度,管理Symantec Enterprise Vault9交易等技能。 Continue reading

KillTest 000-170認證考試學習資料幫助考生成功通過IBM BPM Blueprint; WebSphere Lombardi Edition V7.1考試。要獲取BPM Blueprint; WebSphere Lombardi Edition V7.1證書需要考生參加000-170考試。要求考生必須在75分鐘內完成40道考題,達到70%就可以獲取證書。建議考生選擇英語為該考試語種,000-170考試隸屬於IBM Certified Associate BPM Analyst認證體系。 Continue reading

Cisco Certified Design Professional (CCDP) 是Cisco認證系列中另一張較高級的證書,CCDP認證主要提供網路規劃人員在今日快速變動的網路環境中獲得Cisco網路設備所需的專業知識。持有CCDP 認證表示您有能力設計包含100到500個節點以上的路由和切換式網路。考取CCDP考試必須具備CCNA或CCDA證照。該認證考試科目是ARCH 642-874,ROUTE 642-813,SWITCH 642-902考試。獲取CCDP認證人士必須能夠運用所學習得到的網路知識,對網路設備的安裝、配置和操作技巧各方面都能完全掌握,然後再憑經驗,對複雜的LAN、WAN 和交換式區域網路而進行設計和規劃。 Continue reading

Related Posts