【问题标题】:How to get updated objects instantaneously by Hibernate?如何通过 Hibernate 即时获取更新的对象?
【发布时间】:2013-03-13 16:52:26
【问题描述】:

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

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

session.evict(user);

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

【问题讨论】:

    标签: database hibernate orm object-relational-model


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      尝试使用刷新对象,

      session.refresh(object, LockOptions.NONE)
      

      它将从 DB 获取最新信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-28
        • 2016-04-11
        • 2015-05-12
        • 2020-07-30
        • 1970-01-01
        • 2013-11-20
        • 2013-04-13
        • 1970-01-01
        相关资源
        最近更新 更多