如何通过Hibernate即时获取更新的对象?

问题描述 投票:0回答:2

我没有得到hibernate会话检索的更新对象。例如如果我通过会话B更新对象[该对象早先已被会话A提取],那么我不会立即获得会话B所做的更新。

然后我将使用以下代码强制Hibernate获取更新的值。

session.evict(user);

但这涉及到数据库的往返。我怎么能避免这种情况?是否有更合适的方式立即获得更新?

database hibernate orm object-relational-model
2个回答
0
投票

通过设计,hibernate会话(持久化上下文)彼此隔离,并保证可重复读取。

处理问题的更好方法是在会话A上调用session.refresh()如果您怀疑对象是陈旧的,而不是调用evict()和get()


0
投票

尝试使用刷新对象,

session.refresh(object, LockOptions.NONE)

它将从DB获得最新信息。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.