這篇文章主要介紹了java之Hibernate狀態整理的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創新互聯堅實的技術研發基礎贏得了行業內的良好口碑,公司成立十年來,為超過千家企業提供過網站建設、軟件開發、搜索引擎優化技術、互聯網大數據整合營銷服務,多年的技術服務成功經驗、眾多的客戶使我們能懂得更多,做得更好。"讓您的網站跑起來"是我們一直追求的目標!
Java中的集合主要分為四類:1、List列表:有序的,可重復的;2、Queue隊列:有序,可重復的;3、Set集合:不可重復;4、Map映射:無序,鍵唯一,值不唯一。
本教程操作環境:windows7系統、java10版,DELL G3電腦。
1.瞬時狀態
通過new開辟內存空間創建的實體對象,但是它沒有納入hibernate session的管理之中,如果沒有變量對它引用,它將會被JVM(垃圾回收器)回收。瞬時狀態的對象在內存中是孤立的,它與數據庫無任何關聯,僅僅是一個信息攜帶的載體。
一個瞬時狀態對象被持久化狀態對象引用,它也會自動變為持久化狀態對象。例如調用session的save、saveorupdate等方法的時候。
特征:
(1)使用 new 創建出來的對象,沒有設置 id 屬性
(2)沒有被 session 托管,換句話說 對象數據 存放在內存中, 沒有存放到 session 緩存中
(3)臨時對象數據 與 數據庫中的數據 還沒任何關聯
2.持久化狀態
持久化狀態對象存在與數據庫中的數據關聯,它總是與會話狀態(Session)和事務(Transaction)關聯在一起。當持久化狀態對象發生變動時并不會立即執行數據庫操作,只有當事務結束時,才會更新數據庫,以便保證Hibernate的持久化對象和數據庫操作的同步性。
當持久化狀態對象變為托管狀態對象時,它將不在Hibernate持久層的管理范圍之內。
特征:
(1)要么是從數據庫中使用 get 或 load 方法查詢到的數據對象, 要么是 使用save 或 update 方法數據轉變成持久層對象
(2)對象 數據被 session 托管。換句話說 對象數據 在 session 緩存中有一份,在數據庫中有相應的記錄
3.脫管狀態
當持久化對象的Session關閉之后,這個對象就從持久化狀態變為托管狀態。托管狀態的對象仍然在與數據庫中的數據關聯,但是他并不在Hibernate的Session管轄范圍之內。
如果將脫管狀態的對象重新關聯到某個新的Session上,它將變回持久化狀態對象。
特征:
(1)主要是通過 持久狀態對象,調用 session.evict() 或 session.clear() 或 session.close() 得到的,也可以new 一個設置 id 值的對象
(2)session 緩存中沒有,內存中有的對象(注: 該對象設置了 id 值)
4.刪除態
調用session的delete方法時,對象轉為刪除態。刪除態只能等待被回收。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“java之Hibernate狀態整理的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持創新互聯,關注創新互聯行業資訊頻道,更多相關知識等著你來學習!
網頁題目:java之Hibernate狀態整理的示例分析
轉載來源:http://vcdvsql.cn/article0/poccoo.html
成都網站建設公司_創新互聯,為您提供定制開發、域名注冊、企業網站制作、建站公司、網站排名、關鍵詞優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯