什么是hibernate中的二级缓存?

什么是hibernate中的二级缓存?

Hibernate带有三个不同的缓存:第一级,第二级和查询缓存。

第一级缓存是Hibernate会话,用于跟踪当前会话(或工作单元)期间的实体状态。 这是一个事务级缓存。

第二级缓存跨各种Session共享实体状态。 这是一个SessionFactory级缓存。

查询缓存用于缓存查询(及其参数)及其结果。

推荐读物

  • 文档中的二级缓存
  • Hibernate:真正理解二级和查询缓存
  • 了解Hibernate中的缓存 – 第一部分:会话缓存
  • Hibernate缓存

默认情况下启用一级缓存,并在会话范围内工作。二级缓存与一级缓存不同,可在会话工厂范围内全局使用。 因此,在会话工厂范围中创建二级缓存,并且可以在使用该特定会话工厂创建的所有会话中使用。 这也意味着一旦会话工厂关闭,与之关联的所有缓存就会消失,缓存管理器也会关闭。 每当hibernate会话尝试加载实体时,它首先在第一级缓存中查找实体的缓存副本,如果第一级缓存中没有缓存实体,则查找第二级缓存以获取缓存实体。