【问题标题】:Hibernate cache levels 1 and 2 [duplicate]休眠缓存级别 1 和 2 [重复]
【发布时间】:2021-11-11 10:52:37
【问题描述】:

Hibernate 中一级缓存和二级缓存有什么区别?

嗨,我正在学习 Hibernate。我阅读了一些关于一级和二级缓存的文档。它们之间有什么区别?从文档中很难理解。似乎他们做同样的事情,并在将它们推送到数据库之前将一些值存储在 JVM 中......实际上有什么区别?

【问题讨论】:

    标签: java spring-boot hibernate hibernate-cache


    【解决方案1】:

    好的,下面是你如何看待它...

    Hibernate 中最基本的类之一是 Session 类。

    Session 用于获取与数据库的物理连接。 Session 对象是轻量级的,旨在在每次需要与数据库交互时实例化

    顾名思义,一级缓存是hibernate在从数据库中加载对象之前首先查询的缓存。它在 Session 级别维护,默认情况下处于启用状态。

    现在,让我们来看看二级缓存。这是 Hibernate 提供的可选缓存。与只有维护它的会话才能访问的一级缓存不同,二级缓存可供所有会话访问。

    这意味着,如果一个 Session 加载了一个对象,比如 id=1 的 Person,而第二个 session 也加载了同一个对象,那么只会进行一次数据库调用。

    这从本质上解释了根本的区别。 一级缓存 -> 强制且仅用于一个会话。 二级缓存 -> 可选并由所有会话共享

    好的,那么我们如何使用这个功能让我们的生活变得更美好、更轻松呢?

    这有什么用例?

    您可以在这个惊人的post 中找到详细信息。

    【讨论】:

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