Hibernate 中一级缓存和二级缓存的区别
Hibernate 支持两种类型的缓存,一种是一级缓存,另一种是二级缓存。
一级缓存是会话级缓存,它始终与会话级对象相关联。这种类型的缓存用于通过缓存对象的状态来最大程度地减少数据库交互。也就是说,它不是在事务中每次修改后都更新,而是在事务结束时才更新事务。
二级缓存是会话工厂级缓存,它在所有会话中都可用。在运行事务时,它会在会话工厂级别加载对象,以便这些对象对整个应用程序可用,而不局限于单个用户。默认情况下,它在 Hibernate 中是禁用的。
序号 | 关键点 | 一级缓存 | 二级缓存 |
---|---|---|---|
1 | 基础 | 一级缓存是会话级缓存,它始终与会话级对象相关联 | 二级缓存是会话工厂级缓存,它在所有会话中都可用 |
2 | 启用 | 默认启用。 | 默认不启用。 |
3 | 可用性 | 对单个会话可用 | 在所有会话中都可用。 |
4 | 配置 | 不需要额外配置 | 我们需要决定使用哪种并发策略,还需要配置缓存过期和物理缓存属性。 |
广告