Hibernatet中的三種對象


臨時對象,也就是不在Session裏邊,沒有持久化標識,數據庫中也沒有對應的這個數據的記錄,此時才能用save;
持久化對象,在Session裏邊的,擁有持久化標識OID,此時的數據的內容只要修改,(ID)不能變,會引起數據此對象和數據庫的聯動,這是Hibernate通過同步來實現的。具體怎麼實現,可參考對象的生命週期,和垃圾回收有一絲關係。此時的數據只要修改就算不使用saveOrUpdate也會達到更新數據庫的效果。
還有一種對象:脫管對象。此對象擁有持久化標識,也就是說數據庫中有這個對象對應的數據記錄,但是Session關閉了,也就是說Session的緩存中沒有這個對象了。不受Session的管理了。此時如果修改了這個對象的屬性,不會了生聯動,也就是數據不會反映到數據庫中去,除非調用saveOrUpdate()方法,並且commit後,此對象又成了持久化對象。
呵呵,看下Hibernate的三種對象類型,相信樓主會明白。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章