【发布时间】:2010-05-13 08:50:46
【问题描述】:
什么是hibernate的二级缓存?
【问题讨论】:
标签: java hibernate orm second-level-cache
什么是hibernate的二级缓存?
【问题讨论】:
标签: java hibernate orm second-level-cache
Hibernate 带有三种不同的缓存:一级缓存、二级缓存和查询缓存。
一级缓存是 Hibernate Session,用于在当前 Session(或工作单元)期间跟踪实体的状态。这是一个事务级缓存。
二级缓存在不同的 Session 之间共享实体状态。这是一个 SessionFactory 级别的缓存。
查询缓存用于缓存查询(及其参数)及其结果。
【讨论】:
一级缓存默认启用并在会话范围内工作。二级缓存与一级缓存不同,可在会话工厂范围内全局使用。 因此,二级缓存是在会话工厂范围内创建的,并且可用于使用该特定会话工厂创建的所有会话。 这也意味着一旦会话工厂关闭,所有与之关联的缓存都会死掉,缓存管理器也会关闭。 每当休眠会话尝试加载实体时,它首先会在一级缓存中查找实体的缓存副本,如果一级缓存中没有缓存的实体,则在二级缓存中查找缓存的实体。
【讨论】: