名师指路Hibernate的二级缓存策略过程

Posted 腾科IT教育

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了名师指路Hibernate的二级缓存策略过程相关的知识,希望对你有一定的参考价值。


1) 条件查询的时候,总是发出一条select * from table_name where …. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象。

2) 把获得的所有数据对象根据ID放入到第二级缓存中。

3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;查不到,再查询数据库,把结果按照ID放入到缓存。

4) 删除、更新、增加数据的时候,同时更新缓存。

Hibernate的二级缓存策略,是针对于ID查询的缓存策略,对于条件查询则毫无作用。为此,Hibernate提供了针对条件查询的Query缓存。

Hibernate的Query缓存策略的过程如下:

1) Hibernate首先根据这些信息组成一个Query Key,Query Key包括条件查询的请求一般信息:SQL, SQL需要的参数,记录范围(起始位置rowStart,最大记录个数maxRows),等。

2) Hibernate根据这个Query Key到Query缓存中查找对应的结果列表。如果存在,那么返回这个结果列表;如果不存在,查询数据库,获取结果列表,把整个结果列表根据Query Key放入到Query缓存中。

3) Query Key中的SQL涉及到一些表名,如果这些表的任何数据发生修改、删除、增加等操作,这些相关的Query Key都要从缓存中清空.


以上是关于名师指路Hibernate的二级缓存策略过程的主要内容,如果未能解决你的问题,请参考以下文章

具体解释Hibernate中的二级缓存

Hibernate ——二级缓存

Ehcache 实现 Hibernate 二级缓存策略

Hibernate一级缓存和二级缓存具体解释

Hibernate中一级缓存和二级缓存使用详解

hibernate 一级缓存session关闭后失效。二级缓存啥时候失效?