淺談Java實體對象的三種狀態(tài)以及轉(zhuǎn)換關(guān)系
最新的Hibernate文檔中為Hibernate對象定義了四種狀態(tài)(原來是三種狀態(tài),面試的時候基本上問的也是三種狀態(tài)),分別是:瞬時態(tài)(new, or transient)、持久態(tài)(managed, or persistent)、游狀態(tài)(detached)和移除態(tài)(removed,以前Hibernate文檔中定義的三種狀態(tài)中沒有移除態(tài)),如下圖所示,就以前的Hibernate文檔中移除態(tài)被視為是瞬時態(tài)。

瞬時態(tài):當(dāng)new一個實體對象后,這個對象處于瞬時態(tài),即這個對象只是一個保存臨時數(shù)據(jù)的內(nèi)存區(qū)域,如果沒有變量引用這個對象,則會被JVM的垃圾回收機制回收。這個對象所保存的數(shù)據(jù)與數(shù)據(jù)庫沒有任何關(guān)系,除非通過Session的save()、saveOrUpdate()、persist()、merge()方法把瞬時態(tài)對象與數(shù)據(jù)庫關(guān)聯(lián),并把數(shù)據(jù)插入或者更新到數(shù)據(jù)庫,這個對象才轉(zhuǎn)換為持久態(tài)對象。持久態(tài):持久態(tài)對象的實例在數(shù)據(jù)庫中有對應(yīng)的記錄,并擁有一個持久化標(biāo)識(ID)。對持久態(tài)對象進(jìn)行delete操作后,數(shù)據(jù)庫中對應(yīng)的記錄將被刪除,那么持久態(tài)對象與數(shù)據(jù)庫記錄不再存在對應(yīng)關(guān)系,持久態(tài)對象變成移除態(tài)(可以視為瞬時態(tài))。持久態(tài)對象被修改變更后,不會馬上同步到數(shù)據(jù)庫,直到數(shù)據(jù)庫事務(wù)提交。游離態(tài):當(dāng)Session進(jìn)行了close()、clear()、evict()或flush()后,實體對象從持久態(tài)變成游離態(tài),對象雖然擁有持久和與數(shù)據(jù)庫對應(yīng)記錄一致的標(biāo)識值,但是因為對象已經(jīng)從會話中清除掉,對象不在持久化管理之內(nèi),所以處于游離態(tài)(也叫脫管態(tài))。游離態(tài)的對象與臨時狀態(tài)對象是十分相似的,只是它還含有持久化標(biāo)識。
總結(jié)
以上就是本文關(guān)于淺談Java實體對象的三種狀態(tài)以及轉(zhuǎn)換關(guān)系的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:java并發(fā)學(xué)習(xí)之BlockingQueue實現(xiàn)生產(chǎn)者消費者詳解、淺談java中字符串?dāng)?shù)組、字符串、整形之間的轉(zhuǎn)換、java實現(xiàn)遍歷樹形菜單兩種實現(xiàn)代碼分享等,有什么問題可以隨時留言,小編會及時回復(fù)大家的。感謝朋友們對本站的支持!
相關(guān)文章
Spring框架設(shè)值注入操作實戰(zhàn)案例分析
這篇文章主要介紹了Spring框架設(shè)值注入操作,結(jié)合具體實例形式分析了spring框架設(shè)值注入相關(guān)實現(xiàn)與使用方法,需要的朋友可以參考下2019-11-11
Java連接MySQL數(shù)據(jù)庫命令行程序過程
SQL編程包括兩種形式,一種是過程化編程,主要通過數(shù)據(jù)庫交互式工具,通過存儲過程、觸發(fā)器、函數(shù)等形式的編程;另一種是嵌入式SQL編程,將SQL語句嵌入到高級開發(fā)語言,完成數(shù)據(jù)的各種操作2021-10-10
SpringBoot整合Liquibase實現(xiàn)對數(shù)據(jù)庫管理和遷移
Liquibase是一個用于用于跟蹤、管理和應(yīng)用數(shù)據(jù)庫變化的開源工具,通過日志文件(changelog)的形式記錄數(shù)據(jù)庫的變更(changeset),然后執(zhí)行日志文件中的修改,將數(shù)據(jù)庫更新或回滾(rollback)到一致的狀態(tài),本文主要介紹SpringBoot與Liquibase的集成,需要的朋友可以參考下2024-11-11
解決maven clean報錯:Failed to delete xxxxx\t
這篇文章主要介紹了解決maven clean報錯:Failed to delete xxxxx\target\xxxx.jar問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
教你使用eclipse?搭建Swt?環(huán)境的全過程
本文給大家分享使用eclipse?搭建Swt?環(huán)境的全過程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12

