4.2.2 更新detached對象的持久化狀態

 

在session關閉之後再去修改user不會對數據庫中的數據造成任何影響。當session被關閉之後,user變成了一個detached對象。需要通過update()或者lock()方法來重新和一個新的session關聯。

Update() 方法強迫執行一個更新數據庫的狀態。下面是一個例子:

對象的狀態在update()方法之前還是之後更新並不重要。重要的是通過update()方法重新和session進行關聯,它告訴Hibernate將此對象當作一個髒數據處理。

下面的例子則列舉了使用lock()方法:

在這個例子中,數據狀態的改變的時間點就變得不那麼隨意。在lock()方法之前做的改變不會被更新到數據庫,之後在其後更改的數據才能生效。

我們將在下章討論Hibernate的鎖模式。通過設置LockMOde.NONE,我們告訴Hibernate不需要獲取任何和數據庫級別的鎖。如果我們制定了LockMode.READ或者LockMode.UPGRADE,那麼Hibernate就會用SELECT來執行版本的檢測。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章