小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

merge attachDirty attachClean用法

 Colin收藏 2012-07-28

merge attachDirty attachClean用法.

2011-07-17 02:01:50| 分類: 默認(rèn)分類 | 標(biāo)簽: |字號 訂閱

大家對以下3個措施定然不面生,一些IDE生成的代碼等閑都有下面三個措施:

public Person merge(Person detachedInstance) { log.debug("merging Person instance"); try { Person result = (Person) getSession().merge( detachedInstance); log.debug("merge successful"); return result; } catch (RuntimeException re) { log.error("merge failed", re); throw re; } } public void attachDirty(Person instance) { log.debug("attaching dirty Person instance"); try { getSession().saveOrUpdate(instance); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } } public void attachClean(Person instance) { log.debug("attaching clean Person instance"); try { getSession().lock(instance, LockMode.NONE); log.debug("attach successful"); } catch (RuntimeException re) { log.error("attach failed", re); throw re; } }

merge:將傳入的detached事態(tài)的對象的屬性復(fù)制到永遠(yuǎn)化對象中,并歸來該永遠(yuǎn)化對象 。萬一該session中未曾關(guān)系的永遠(yuǎn)化對象,加載一個,萬一傳入對象未保留,保留一個副本并作為永遠(yuǎn)對象歸來,傳入對象依舊堅持detached事態(tài)。

attachDirty:將傳入的對象永遠(yuǎn)化并保留。萬一對象未保留(Transient事態(tài)),調(diào)用save措施保留。萬一對象已保留(Detached事態(tài)),調(diào)用update措施將對象與Session重新關(guān)系。

attachClean:將傳入的對象事態(tài)設(shè)置為Transient事態(tài)。


解釋一下,在Hibernate中的對象有三種事態(tài),即:
俄而事態(tài)(Transient)、永遠(yuǎn)事態(tài)(Persistent)、脫管事態(tài)(Detached)

1、俄而事態(tài)(Transient)
由new號召開發(fā)內(nèi)存空間的Java對象,也即便平時所純熟的等閑Java對象。

如:Person p = new Person();
俄而對象個性:
(1)不和Session實例關(guān)系
(2)在數(shù)據(jù)庫中未曾和俄而對象關(guān)系的登記

2、永遠(yuǎn)事態(tài)(Persistent)
永遠(yuǎn)的實例在數(shù)據(jù)庫中有對應(yīng)的登記,并具有一個永遠(yuǎn)化標(biāo)識(identifier).
永遠(yuǎn)對象總是與Session和Transaction相干聯(lián),在一個Session中,對永遠(yuǎn)對象的改換不會即刻對數(shù)據(jù)庫舉行改變,而定然在Transaction終止,也即便厲行commit()爾后,才在數(shù)據(jù)庫中懇摯運(yùn)行SQL舉行改變,永遠(yuǎn)對象的事態(tài)才會與數(shù)據(jù)庫舉行同步。在同步之前的永遠(yuǎn)對象稱為臟(dirty)對象。
俄而對象轉(zhuǎn)為永遠(yuǎn)對象:
(1) 穿越Session的save()和saveOrUpdate()措施把一個俄而對象與數(shù)據(jù)庫相干聯(lián),這個俄而對象就成為永遠(yuǎn)化對象。
(2) 利用fine(),無線通訊模塊get(),load()和iterater()待措施查詢到的數(shù)據(jù)對象,將成為永遠(yuǎn)化對象。
永遠(yuǎn)化對象的個性:
(1) 和Session實例關(guān)系
(2) 在數(shù)據(jù)庫中有和永遠(yuǎn)對象關(guān)系的登記

3、脫管事態(tài)(Detached)
與永遠(yuǎn)對象關(guān)系的Session被關(guān)閉后,對象就變?yōu)槊摴軐ο?。對脫管對象的引用依舊管用,對象可繼續(xù)被修正。
脫管對象個性:
(1) 性質(zhì)上和俄而對象雷同
(2) 只是比愛俄而對象多了一個數(shù)據(jù)庫登記標(biāo)識值id.
永遠(yuǎn)對象轉(zhuǎn)為脫管對象:
當(dāng)厲行close()或clear(),evict()爾后,永遠(yuǎn)對象會變?yōu)槊摴軐ο蟆?

俄而對象轉(zhuǎn)為永遠(yuǎn)對象:
穿越Session的update(),saveOrUpdate()和lock()等措施,把脫管對象變?yōu)橛肋h(yuǎn)對象。 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多