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