Hibernate實(shí)體對象的生命周期
Hibernate實(shí)體對象的生命周期
實(shí)體對象的3種狀態(tài)
Transient(自由狀態(tài))
所謂的Transient,即實(shí)體對象在內(nèi)存中自由存在,它與數(shù)據(jù)庫中的記錄無關(guān).
Persistent(持久狀態(tài))
所謂的Persistent,即Hibernate實(shí)體對象處于由Hibernate框架所管理的狀態(tài),這種狀態(tài)下,實(shí)體對象的引用被納入了Hibernate實(shí)體容器中加以管理.
處于Persistent狀態(tài)的對象,其變更將由Hibernate持久化到數(shù)據(jù)庫中. 簡而言之,如果一個(gè)實(shí)體對象與某個(gè)Session實(shí)例發(fā)生了關(guān)聯(lián),并處于對應(yīng)Session的有效期內(nèi),那么它將處于Persistent狀態(tài).
Detached(游離狀態(tài))
處于Persistent狀態(tài)的對象,其對應(yīng)的Session實(shí)例關(guān)閉之后,那么些對象就處于"Detached"狀態(tài).在數(shù)據(jù)庫中存在對應(yīng)的記錄. 同時(shí),三種狀態(tài)可以相互轉(zhuǎn)換.
Hibernate實(shí)體對象的識別
◆實(shí)體身份識別(Data Identity)
◆引用比較(==)
◆內(nèi)容比較(equals)
在站數(shù)據(jù)庫的角度,我們認(rèn)為,在一個(gè)庫表結(jié)構(gòu)中,主鍵可以惟一確定一條記錄,那么擁有同樣主鍵的實(shí)體對象,則認(rèn)為他們等同.在Hibernate中,這個(gè)規(guī)則亦成立.
【編輯推薦】