hibernate实体的几种状态:
hibernate實(shí)體的幾種狀態(tài):
?
?實(shí)體的生命周期中,實(shí)體主要經(jīng)過瞬時(shí)(Transient),托管(Attatched或Managed),游離(Detached)和銷毀(Removed)四個(gè)狀態(tài).
?瞬時(shí)狀態(tài):是指對(duì)象被new之后尚未保存到數(shù)據(jù)庫,一旦服務(wù)器停止,JVM會(huì)回收它所占的內(nèi)存資源,此時(shí)對(duì)象沒有與session關(guān)聯(lián).
?托管狀態(tài):在數(shù)據(jù)庫中已有數(shù)據(jù)與之對(duì)應(yīng),且與session相關(guān)聯(lián)。實(shí)體狀態(tài)轉(zhuǎn)換到托管狀態(tài)的方法:
??A.調(diào)用persist(),實(shí)體從游離轉(zhuǎn)變到托管,最后變成持久化狀態(tài).?
??B.調(diào)用find()或Query執(zhí)行查詢,實(shí)體從持久變成托管.
??C.調(diào)用refresh(),游離實(shí)體將被重新加載,變成托管狀態(tài).
??D.調(diào)用merge(),將游離實(shí)體變成托管實(shí)體.
?游離狀態(tài):數(shù)據(jù)庫中有數(shù)據(jù)與之對(duì)應(yīng)但不在session的管理范圍,它的屬性不與數(shù)據(jù)庫中持久化的實(shí)體同步.??
??實(shí)體從托管變成游離的情況有:
???A.當(dāng)一個(gè)事務(wù)結(jié)束,實(shí)體超過持久化上下文作用域,實(shí)體變成游離態(tài)
???B.當(dāng)復(fù)制實(shí)體對(duì)象或序列化時(shí),實(shí)體將變成游離態(tài)
???C.調(diào)用clear方法時(shí),所有的實(shí)體將強(qiáng)制轉(zhuǎn)化為游離態(tài)
?銷毀狀態(tài):是實(shí)體從數(shù)據(jù)庫刪除后的狀態(tài)
總結(jié)
以上是生活随笔為你收集整理的hibernate实体的几种状态:的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: InnoDB Spin rounds p
- 下一篇: asm和file system之间数据文