2013-03-13 26 views
0

我沒有通過休眠會話獲取更新的對象。例如如果我通過會話B更新對象[對象早已被會話A提取],那麼我沒有立即獲得會話B所做的更新。如何通過Hibernate瞬時獲取更新對象?

然後,我必須使用下面的代碼來強制Hibernate獲取更新的值。

session.evict(user); 

但是這涉及數據庫的往返。我如何避免這種情況?是否有更適當的方法來即時獲取更新?

回答

0

通過設計hibernate會話(持久性上下文)彼此隔離,並保證可重複讀取。

更好地處理您的問題的方法是調用session.refresh()在會話中的,如果你懷疑你的對象是陳舊的,而不是調用逐出()和get()

0

嘗試使用對象來刷新,

session.refresh(object, LockOptions.NONE) 

它會從DB獲得最新版本。

相關問題