国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java Hibernate對象(瞬時態(tài),持久態(tài),脫管態(tài))詳解

2019-11-26 13:32:28
字體:
供稿:網(wǎng)友

Java Hibernate對象

           由于最近學(xué)習(xí)Java Hibernate,這里對Java Hibernate對象的幾種狀態(tài)進(jìn)行了資料整理,  有興趣的朋友可以看下。

瞬時(transient):數(shù)據(jù)庫中沒有數(shù)據(jù)與之對應(yīng),超過作用域會被JVM垃圾回收器回收,一般是new出來且與session沒有關(guān)聯(lián)的對象。

持久(persistent):數(shù)據(jù)庫中有數(shù)據(jù)與之對應(yīng),當(dāng)前與session有關(guān)聯(lián),并且相關(guān)聯(lián)的session沒有關(guān)閉,事務(wù)沒有提交;

          持久對象狀態(tài)發(fā)生改變,在事務(wù)提交時會影響到數(shù)據(jù)庫(hibernate能檢測到)。

 (當(dāng)對象save后,會將數(shù)據(jù)持久化,這時obj.set()后再提交事務(wù)hibernate會檢測到數(shù)據(jù)的修改。

而如果在save這個對象之前(即使是處在事務(wù)中),也即是還沒有持久化這個對象之前,用obj.set()則hibernate不能檢測到數(shù)據(jù)修改,不會影響數(shù)據(jù)庫)

脫管/游離(detached):數(shù)據(jù)庫中有數(shù)據(jù)與之對應(yīng),但當(dāng)前沒有session與之關(guān)聯(lián);脫管對象狀態(tài)發(fā)生改變,hibernate不能檢測到。

hibernate對象的三種狀態(tài),轉(zhuǎn)換圖:

Commit()會關(guān)閉session

面試圖:如果判斷一個對象處于怎樣的狀態(tài)?

主要的依據(jù)是: 1. 看該對象是否處于session, 2, 看在數(shù)據(jù)庫中有沒有對應(yīng)的記錄

總結(jié):

瞬時態(tài): 沒有session管理,同時數(shù)據(jù)庫沒有對應(yīng)記錄

持久態(tài): 有session管理,同時在數(shù)據(jù)庫中有記錄

脫管態(tài)/游離態(tài): 沒有session管理,但是在數(shù)據(jù)庫中有記錄.

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 咸宁市| 呼和浩特市| 平乐县| 年辖:市辖区| 星子县| 南通市| 岐山县| 保康县| 白朗县| 广安市| 东平县| 龙江县| 阳曲县| 杭锦后旗| 香河县| 永平县| 奉新县| 太湖县| 麟游县| 静安区| 五指山市| 澎湖县| 永和县| 东兴市| 大理市| 桓仁| 潜山县| 呼玛县| 临颍县| 辰溪县| 义马市| 济宁市| 雷州市| 东兰县| 遂溪县| 涟水县| 罗甸县| 漠河县| 剑河县| 广灵县| 枣庄市|