首先先說下hibernate中的三個狀態,只有完全理解了這三個狀態,才能在項目中充分利用hibernate這個工具來完成項目進度。
1、瞬時態,也叫臨時態等,不受hibernate session管制的狀態,即某個實例跟session沒有任何關聯,比如new產生的實例。
2、持久態,session中持久化了的實例,相當於數據庫中的記錄,修改實例的任何屬性都會導致數據庫記錄的變更。
3、托管態,也叫游離態等,持久化對象脫離了Session的對象。如Session緩存被清空的對象。特點:已經持久化,但不在Session緩存中。處於此狀態的對象叫游離對象。
下邊用張圖表示三個狀態之間的轉換關系:
順便補充下持久態跟托管態的區別:
持久態:修改實例屬性會引起數據庫對應記錄的變更
托管態:修改實例屬性不會引起數據庫對應記錄的變更