Hibernate 3中狀態之間的轉換
阿新 • • 發佈:2018-12-22
Hibernate 3中狀態之間的轉換
在hibernate中 不同的持久化操作會導致物件的狀態的改變
如下圖所示:
使用new關鍵字構建的物件是瞬時狀態的
1、瞬時狀態轉換為持久狀態
- 使用session物件的save()或saveOrUpdate()方法儲存物件後,該物件的狀態由瞬時狀態轉換為持久狀態
- 使用session物件的get()或load()方法獲取物件後,該物件的狀態是持久狀態
2、持久狀態轉換為瞬時狀態
- 執行session物件的delete()方法後,物件由原來的持久狀態變為瞬時狀態,因此該物件沒有與任何的資料庫資料有關聯
3、持久狀態變為遊離狀態
- 執行了session物件的evict()、clear()、 close() 方法,物件由原來的持久狀態變為遊離態。
4、遊離狀態轉換為持久狀態
- 重新獲取session物件,執行session物件的update()或 saveOrUpdate()方法,由遊離狀態轉換為持久狀態,該物件再次與session關聯。
5、遊離狀態轉換為瞬時狀態
- 執行session的delete()方法,物件有遊離狀態變為瞬時狀態;
- 對瞬時狀態或遊離狀態 的物件不再被其他物件引用時,會被Java虛擬機器按照垃圾回收機制處理