持久化類類三種狀態介紹
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