HIbernate的三种状态
? ?1.瞬時狀態(Transient)
通過new創建對象后,對象并沒有立刻持久化,他并未對數據庫中的數據有任何的關聯,此時java對象的狀態為瞬時狀態,Session對于瞬時狀態的java對象是一無所知的,當對象不再被其他對象引用時,它的所有數據也就丟失了,對象將會被java虛擬機按照垃圾回收機制處理。
? ?2.持久狀態(Persistent)?
當對象與Session管理時,他就處于持久狀態。處于持久狀態的對象擁有數據庫表示(數據庫中的主鍵值)。
? ?3.游離狀態(Detached) ??
處于持久狀態的對象,脫離與其關聯的Sessionn的管理后,對象就處于游離狀態。
?
三種對象見的轉換
使用new關鍵字構建的對象,該對象的狀態就是瞬時狀態
1.瞬時狀態轉為持久狀態
使用session對象的save()或者seavOrUpdate()方法保存對象后,該對象的狀態由瞬時轉換為持久狀態。
使用Session對象的get()或load()方法獲取對象,該對象的狀態是持久狀態
2.持久狀態轉為瞬時狀態
執行Session對象的delete()方法后,對象由原來的持久狀態變為瞬時狀態,因為此時刻對象沒有與任何的數據庫數據關聯。
3.持久狀態轉為游
執行了Session對象的evict(),clear(),close()方法,對象由原來的持久狀態轉為游離狀態;
4.游離狀態轉為持久狀態
重新獲取Session對象,執行Session對象的update()或saveOrUpdate()方法,對象游離狀態轉為持久狀態,該對象再次與session關聯,
5.游離狀態轉為瞬時狀態
執行Session()對象的delete()方法時,對象由游離狀態轉為瞬時狀態.
處于瞬時狀態或游離狀態的對象不再被其他對象引用時,會被java虛擬機按照垃圾回收機制處理.
轉載于:https://www.cnblogs.com/www-datou-com/p/6269179.html
總結
以上是生活随笔為你收集整理的HIbernate的三种状态的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 平安银行灵用金怎么还?可以提前还款吗?
- 下一篇: Ubuntu 16.04LTS 安装和配