【问题标题】:Hibernate caching休眠缓存
【发布时间】:2014-10-07 06:44:23
【问题描述】:

在hibernate中已经可以使用一级缓存进行缓存,那么为什么我们必须使用二级缓存呢?为什么我们不能只使用hibernate中的一级缓存而不是二级缓存?

【问题讨论】:

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


    【解决方案1】:

    请参阅What are First and Second Level caching in Hibernate?,了解有关 Hibernate 缓存的详细说明。

    基本上:

    • 一级缓存加速单个会话/事务的更新
    • 二级缓存加快了许多事务中使用的对象的检索速度。

    这是两个不同的用例,具有不同的需求,需要不同的逻辑。

    【讨论】:

    • @user3898783 this 帮助你
    【解决方案2】:

    一级缓存工作在 Session 级别,这意味着将跟踪一个持久对象,直到当前 Session 关闭。并且在关闭此会话之前对此对象所做的任何更改都将反映在数据库中。默认开启。

    二级缓存在 SessionFactory 级别工作,因此即使当前会话已关闭,对持久对象所做的所有更改也会被跟踪。您必须手动启用它。有少数供应商提供此功能,其中一些是 ehCache、SwarmCache、OScache 等。

    【讨论】:

      【解决方案3】:

      Hibernate 二级缓存是可选的缓存,在尝试在二级缓存中定位对象之前,总是会查询一级缓存。

      主要用于跨会话缓存对象的需求。

      【讨论】:

        猜你喜欢
        • 2016-08-13
        • 2012-04-29
        • 2015-01-05
        • 2011-11-18
        • 2017-01-16
        • 2011-06-18
        • 2011-10-13
        • 2012-03-14
        • 2010-10-20
        相关资源
        最近更新 更多