1-----transient狀態。當我們new一個對象是,就是transient狀態,最顯著的特點是在數據庫中沒有與之對應的記錄。也沒有納入到session 的管理,隨時可以被垃圾回收處理掉。
2-----persient狀態。當我們對transient 對象進行save(),saveOrUpdate()之後對象進入persient狀態,在數據庫中有與之對應的記錄。納入了session的管理,session和一級緩存綁定着,session級的緩存通常也叫一級緩存。當save()的時候會放到緩存裏一份,可以理解爲session裏有個map,對象放到了map裏面,有對象引用他了,垃圾回收機制是回收不了它的。調用delete(),進入
3-----detached狀態。當persient對象經過 evict(),close(),clear()方法處理,進入遊離態也就是detached狀態。detached對象之是將緩存裏的記錄清理了,數據庫裏的記錄並沒清理,沒有納入session管理,隨時可以被垃圾回收掉。沒有對象引用他~。因爲在數據庫裏有引用記錄沒清理,所以可以調用update(),saveOrUpdate(),lock()等方法,調方法之後又回到transient狀態。
hibernate中實體類的三種狀態
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Java面試題(下)
FVIIMM
2018-08-25 00:03:04
Java面試題(中)
FVIIMM
2018-08-25 00:03:04
使用jdbc向數據庫插入100000條記錄
opzoonzhuzhengke
2018-08-24 14:50:21
hibernate一級緩存,二級緩存,三級緩存,緩存算法及配置。
opzoonzhuzhengke
2018-08-24 14:50:10
hibernate OpenSessionInView
opzoonzhuzhengke
2018-08-24 14:50:09
髒讀、不可重複讀、幻讀
opzoonzhuzhengke
2018-08-24 14:50:09
大數據量下的數據庫查詢與插入如何優化? (整理)
opzoonzhuzhengke
2018-08-24 14:50:09
Struts2的結構
opzoonzhuzhengke
2018-08-24 14:50:09
數據庫隔離級別
opzoonzhuzhengke
2018-08-24 14:50:07
請別再拿“String s = new String("xyz");創建了多少個String實例”來面試了吧
opzoonzhuzhengke
2018-08-24 14:50:07
java面試題及答案(基礎題122道)
kook_okko
2018-08-24 01:25:20