hibernate持久化對象三種狀態及其轉換

持久化類類三種狀態介紹
1. 瞬時態:也叫作臨時態或自由態,它通常指咱們 new 出來的對象,它不存在 OID,
     與 hibernate session 無關聯,在數據庫中也無記錄。它使用完成後,會被 jvm 直接
     回收掉,它只是用於信息攜帶。
簡單說:無 OID 與數據庫中的信息無關聯,不在 session 管理範圍內。
2. 持久態:在 hibernate session 管理範圍內,它具備持久化標識 OID 它的特色,在事
     務未提交前一直是持久態,當它發生改變時, hibernate 是能夠檢測到的。
簡單說:有 OID session 管理,在數據庫中有可能有,也有可有沒有。
3. 託管態:也叫作遊離態或離線態,它是指持久態對象失去了與 session 的關聯,託
     管態對象它存在 OID,在數據庫中有可能存在,也有可能不存在。  
     對於託管態對象,它發生改變時 hibernet 不能檢測到。
數據庫

 

持久化類三種狀態切換
緩存

1. 瞬時態(new 出來的)
 瞬時------>持久 save saveOrUpdate
 瞬時----->脫管(遊離) 手動設置 oid
2. 持久態 它是由 session 管理
 持久------->瞬時 delete() 被刪除後持久化對象不在建議使用
 持久----->脫管 注意:session 它的緩存就是所說的一級緩存
 evict(清除一級緩存 中指定的一個對象)
 clear(清空一級緩存)
 close(關閉,清空一級緩存)
3. 脫管態 (它是沒法直接獲取)
 脫管----->瞬時 直接將 oid 刪除
 脫管---->持久 update saveOrUpdate lock(過期)
session

相關文章
相關標籤/搜索