首页 > 代码库 > Hibernate 缓存

Hibernate 缓存

参考:

https://www.tutorialspoint.com/hibernate/hibernate_caching.htm

http://puredanger.github.io/tech.puredanger.com/2009/07/10/hibernate-query-cache/

http://www.baeldung.com/hibernate-second-level-cache

Hibernate 的缓存分为: 

first level cache,second level cache,query level cache ,timestamp cache (一级缓存,二级缓存,查询缓存,和时间戳缓存)

1、一级缓存:Hibernate默认使用的是一级缓存。一级缓存是基于Session 的上下文的,当Session关闭了这个缓存也就是失效了

2、二级缓存:Hibernate的二级缓存是给予SessionFacotry的,SessionFactory可以提供给多个Session共享,当查询的时候先从一级缓存中查找响应的内容,如果没有找到再从二级缓存中查找,如果还没有找到的话再从数据库中查找

3、查询缓存:查询缓存是针对特定的查询而设置的缓存,缓存中不保留数据,只保留数据的主键,查询缓存不是在任何地方使用都能够提高效率的。

4、时间戳缓存:时间戳缓存是根据更新的时间戳来判断的,如果更新的时间戳在缓存的时间戳的前面则从缓存中读取,否则则从数据库中查询。

 

Hibernate 缓存