如何理解hibernate的持久化,是否可以理解為我把數據庫中的數據放到一個有生命周期的對象里,就是持久話?、、
1 回答

弒天下
TA貢獻1818條經驗 獲得超8個贊
你的理解反了,持久化顧名思義就是把緩存中的東西放到數據庫中使之持久.對于需要持久化的對象,它的生命周期分為三個狀態:臨時狀態,持久化狀態,游離狀態.
臨時狀態:剛剛用new語句創建,沒有被持久化,不處于session的緩存中.處于臨時狀態的java對象被稱為臨時對象.
持久化狀態:已經被持久化,加入到session的緩存中.處于持久化的java對象被稱為持久化對象.
游離狀態:已經被持久化,但不處于session的緩存中,處于游離狀態的java對象被成為游離對象.
持久化對象的特征:
. 位于一個session事例的緩存中,可以說持久化對象總是被一個session事例關聯
. 持久化對象和數據庫中的相關記錄對應
. Session在清理緩存時,會根據持久化對象的屬性變化來同步更新數據庫
. Session的save()方法把臨時狀態變為持久化狀態.
. Session的update() ,saveOrUpdate()和lock()方法使游離狀態變為持久化狀態.
添加回答
舉報
0/150
提交
取消