Hibernate 缓存级别 1 和 2
Hibernate cache levels 1 and 2
Hibernate 中的一级缓存和二级缓存有什么区别?
你好,我正在学习 Hibernate。我阅读了一些关于一级和二级缓存的文档。它们之间有什么区别?从文档中很难理解。看起来他们做同样的事情并在将它们推送到数据库之前将一些值存储在 JVM 中......实际上有什么区别?
好的,下面是您可以查看的方式...
Hibernate 中最基本的 class 之一是 Session
class。
A Session
用于获取与数据库的物理连接。 Session
对象是轻量级的,设计为在每次需要与数据库交互时实例化
顾名思义,第一级 缓存是hibernate 在从数据库加载对象之前查询的第一个缓存。它在会话级别维护,默认情况下启用。
现在,让我们来看看二级缓存。这是 Hibernate 提供的可选缓存。与一级缓存只能被维护它的会话访问不同,二级缓存是所有会话都可以访问的。
这意味着如果一个会话加载一个对象,例如 id=1 的 Person,并且第二个会话也加载相同的对象,则只会进行一次数据库调用。
这从本质上解释了根本的区别。
一级缓存 -> 强制且仅用于一个会话。
二级缓存 -> 可选并由所有会话共享
好的,那么我们如何使用此功能让我们的生活更美好、更轻松?
这个有哪些用例?
您可以在这个惊人的 post 中找到详细信息。
Hibernate 中的一级缓存和二级缓存有什么区别?
你好,我正在学习 Hibernate。我阅读了一些关于一级和二级缓存的文档。它们之间有什么区别?从文档中很难理解。看起来他们做同样的事情并在将它们推送到数据库之前将一些值存储在 JVM 中......实际上有什么区别?
好的,下面是您可以查看的方式...
Hibernate 中最基本的 class 之一是 Session
class。
A Session
用于获取与数据库的物理连接。 Session
对象是轻量级的,设计为在每次需要与数据库交互时实例化
顾名思义,第一级 缓存是hibernate 在从数据库加载对象之前查询的第一个缓存。它在会话级别维护,默认情况下启用。
现在,让我们来看看二级缓存。这是 Hibernate 提供的可选缓存。与一级缓存只能被维护它的会话访问不同,二级缓存是所有会话都可以访问的。
这意味着如果一个会话加载一个对象,例如 id=1 的 Person,并且第二个会话也加载相同的对象,则只会进行一次数据库调用。
这从本质上解释了根本的区别。 一级缓存 -> 强制且仅用于一个会话。 二级缓存 -> 可选并由所有会话共享
好的,那么我们如何使用此功能让我们的生活更美好、更轻松?
这个有哪些用例?
您可以在这个惊人的 post 中找到详细信息。