一個持久化類的實例可能處於三種不同的狀態中的某一種。這三種狀態的定義則與所謂的持久化上下文(persistence context)有關。Hibernate的Session對象就是這個所謂的持久化上下文:
瞬態(transient)
該實例從未與任何持久化上下文關聯過。它沒有持久化標識(相當於主鍵值)。
持久化(persistent)
實例目前與某個持久化上下文有關聯。它擁有持久化標識(相當於主鍵值),並且可能在數據庫中有一個對應的行。對於某一特定的持久化上下文,Hibernate保證持久化標識與Java標識(其值代表對象在內存中的位置)等價。
託管(detached)
實例曾經與某個持久化上下文發生過關聯,不過那個上下文被關閉了,或者這個實例是被序列化(serialize)到另外的進程。它擁有持久化標識,並且在數據庫中可能存在一個對應的行。對於託管狀態的實例,Hibernate不保證任何持久化標識和Java標識的關係。