實例狀態:瞬時、持久化、託管

      一個持久化類的實例可能處於三種不同的狀態中的某一種。這三種狀態的定義則與所謂的持久化上下文(persistence context)有關。Hibernate的Session對象就是這個所謂的持久化上下文:

 

瞬態(transient)

      該實例從未與任何持久化上下文關聯過。它沒有持久化標識(相當於主鍵值)。

 

持久化(persistent)

      實例目前與某個持久化上下文有關聯。它擁有持久化標識(相當於主鍵值),並且可能在數據庫中有一個對應的行。對於某一特定的持久化上下文,Hibernate保證持久化標識與Java標識(其值代表對象在內存中的位置)等價。

 

託管(detached)

      實例曾經與某個持久化上下文發生過關聯,不過那個上下文被關閉了,或者這個實例是被序列化(serialize)到另外的進程。它擁有持久化標識,並且在數據庫中可能存在一個對應的行。對於託管狀態的實例,Hibernate不保證任何持久化標識和Java標識的關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章