【问题标题】:Second level hibernate caching - Making object available at session factory level?二级休眠缓存 - 使对象在会话工厂级别可用?
【发布时间】:2019-10-01 01:56:32
【问题描述】:

我对如何在休眠中使用第一级和第二级缓存有所了解。有很多与此相关的问题-是的,我同意

但我的困惑是。 在第一级缓存中,除非我提交事务,否则我的数据将不会保留在数据库中,因此其他会话在此之前不会知道此更改。 如果二级缓存将实体带到会话工厂级别! 这是否意味着我在一个会话中的更改可以在我提交事务之前被其他会话使用??

什么时候会在使用二级缓存时更新 dB?? 第一,它会在结束事务时发生

我参考了很多关于这个话题的讨论,但我没有找到确切的答案!!

【问题讨论】:

    标签: hibernate second-level-cache first-level-cache


    【解决方案1】:

    在您提交事务之前,您的更新绝对不会与其他会话共享。如果发生这样的事情,那就是一个严重的错误。

    有或没有 2LC 的 DB 提交没有区别,除了 2LC 可能在 DB 完全提交之前使事务失败。 JPA 和 Hibernate 的非 JPA 事务都执行两阶段提交,其中首先通知所有资源事务正在提交,获取一些锁等,如果所有资源都成功,则持久化/发布更改。

    事务缓存与常规数据库没有太大区别:它假装更改已经应用,但对其他事务隐藏它们;这称为多版本并发控制 (MVCC)。

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 2017-07-05
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多