我沒有通過休眠會話獲取更新的對象。例如如果我通過會話B更新對象[對象早已被會話A提取],那麼我沒有立即獲得會話B所做的更新。如何通過Hibernate瞬時獲取更新對象?
然後,我必須使用下面的代碼來強制Hibernate獲取更新的值。
session.evict(user);
但是這涉及數據庫的往返。我如何避免這種情況?是否有更適當的方法來即時獲取更新?
我沒有通過休眠會話獲取更新的對象。例如如果我通過會話B更新對象[對象早已被會話A提取],那麼我沒有立即獲得會話B所做的更新。如何通過Hibernate瞬時獲取更新對象?
然後,我必須使用下面的代碼來強制Hibernate獲取更新的值。
session.evict(user);
但是這涉及數據庫的往返。我如何避免這種情況?是否有更適當的方法來即時獲取更新?
通過設計hibernate會話(持久性上下文)彼此隔離,並保證可重複讀取。
更好地處理您的問題的方法是調用session.refresh()在會話中的,如果你懷疑你的對象是陳舊的,而不是調用逐出()和get()
嘗試使用對象來刷新,
session.refresh(object, LockOptions.NONE)
它會從DB獲得最新版本。