查询缓存:

  定义:查询缓存它是基于二级缓存的,可以保存普通属性查询的结果,查询对象实体时,他会保存id作为键,查询结果作为值,下个对象访问时,可以直接查到

      查询缓存查询实体对象时,显著的特点是,会执行多条查询id查询语句

  生命周期:当关联的表发生修改,查询缓存的生命周期结束

  查询缓存的配置和使用:

    1.修改hibernate.cfg

 <!-- 开启查询缓存 默认为false -->
<property name="hibernate.cache.use_query_cache">false</property>

    2.关联实体类跟二级缓存配置一样的

    3.在程序中启用:

      query.setCacheable(true);

  开启查询缓存,关闭二级查询的情况下:

 public void seleCacheTest(){
try {
session=HibernateUtil.currentSession();
session.beginTransaction();
List grade=session.createQuery("select g from Grade g")
.setCacheable(true)
.list();
for(int i=0;i<grade.size();i++){
Grade grad=(Grade)grade.get(i);
System.out.println(grad.getGradename());
} } catch (Exception e) {
// TODO: handle exception
}finally{
HibernateUtil.closeSession(); }
System.out.println("-------------");
try {
session=HibernateUtil.currentSession();
session.beginTransaction();
List grade=session.createQuery("select g from Grade g")
.setCacheable(true)
.list();
for(int i=0;i<grade.size();i++){
Grade grad=(Grade)grade.get(i);
System.out.println(grad.getGradename());
} } catch (Exception e) {
// TODO: handle exception
}finally{
HibernateUtil.closeSession(); } }

    总结:

      itetator不支持查询缓存

      list 开启查询缓存时,关闭二级缓存:

         在不同session中:第二次查询时,会发出n条查询id

         同一session中时,由于一级缓存的作用:所以无论有没有开启查询缓存都只有一条查询语句  

      list开启查询缓存时,开启二级缓存时:

         只执行一条查询语句,因为二级缓存生效了

    在缓存知识点中需要注意的:

      缓存不能随便用,尽量不用!

      在使用缓存时,还需要考虑到脏数据的问题!

      各级缓存的特点:

        一级缓存,save,get,load,query时都会产生缓存,这是无法禁止的

        二级缓存,二级缓存跨session操作,性能比较好,但是不能查询普通属性

        查询缓存,以键值对方式存放缓存,必须在程序中创建

        

Hibernate <查询缓存>的更多相关文章

  1. Hibernate ——二级缓存

    一.Hibernate 二级缓存 1.Hibernate 二级缓存是 SessionFactory 级别的缓存. 2.二级缓存分为两类: (1)Hibernate内置二级缓存 (2)外置缓存,可配置的 ...

  2. 配置Hibernate二级缓存时,不能初始化RegionFactory的解决办法

    配置Hibernate 二级缓存时,出现以下bug提示: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder&quo ...

  3. 配置Hibernate二级缓存步骤

    配置Hibernate二级缓存步骤: 加入二级缓存的jar包及配置文件 jar包位置:hibernate-release-4.1.8.Final\lib\optional\ehcache下所有jar包 ...

  4. Hibernate 二级缓存 总结整理(转)

    和<Hibernate 关系映射 收集.总结整理> 一样,本篇文章也是我很早之前收集.总结整理的,在此也发上来 希望对大家有用.因为是很早之前写的,不当之处请指正. 1.缓存:缓存是什么, ...

  5. Hibernate(十六):Hibernate二级缓存

    Hibernate缓存 缓存(Cache):计算机领域非常通用的概念.它介于应用程序和永久性数据存储源(如磁盘上的文件或者数据库)之间,起作用是降低应用程序直接读取永久性数据存储源的频率,从而提高应用 ...

  6. hibernate二级缓存demo2

    @Test public void hello3(){ Session session=sessionFactory.openSession(); List list = session.create ...

  7. hibernate二级缓存整合

    <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http:// ...

  8. ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存

    ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存 hibernate  : Hibernate是一个持久层框架,经常访问物理数据库 ...

  9. spring boot集成ehcache 2.x 用于hibernate二级缓存

    https://www.jianshu.com/p/87b2c309b776 本文将介绍如何在spring boot中集成ehcache作为hibernate的二级缓存.各个框架版本如下 spring ...

  10. js相关(easyUI),触发器,ant,jbpm,hibernate二级缓存ehcache,Javamail,Lucene,jqplot,WebService,regex,struts2,oracle表空间

    *********************************************js相关********************************************* // 在指 ...

随机推荐

  1. 一步一步来做WebQQ机器人-(二)(第一次登陆)

    // 预计会有这些步骤,当然某些步骤可能会合并: 验证码 第一次登陆 第二次登陆 保持在线和接收消息 获取好友和群列表 发送消息 变成智能的(*゚∀゚*) webqq的登陆,分为2步,本文主要讲第一次 ...

  2. phpcms v9 的表单向导功能的使用方法

    本文主要介绍phpcms v9的表单向导功能是如何使用的,并副多个案例讲解: 先介绍一下v9 的表单向导如何使用 表单向导做的很实用,生成一个表单,常用的是把它作为一个留言板,或者在招聘栏目作为一个供 ...

  3. ng-repeat 嵌套 ng-switch 出错解决

    Error: $compile:ctreq Missing Required Controller Controller 'ngSwitch', required by directive 'ngSw ...

  4. Intelligencia.UrlRewriter在IIS 7.0下的完全配置攻略

    在项目中,之前公司是使用IIS 7.0官方的URL重写模块,官方的使用说明请参见官方URLRewrite  ,添加伪静态支持,后来经理问我有没有涉及伪静态,我说之前项目中我一直是用Intelligen ...

  5. 错误:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;的解决

    问题: 代码中查询MySQL的结果集时报错,提示Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp;刚开始 ...

  6. 《奥威Power-BI销售计划填报 》精彩回顾

    我们经常遇到这样的问题:业务单据是来自ERP系统,销售计划是EXCEL做的,想把两者整合在一起做分析,怎么办? 单据大,导出EXCEL太费劲,也很难分析到历史数据,但又不能动ERP系统 (自己也不会改 ...

  7. stty--设置终端线

    stty - chang and print terminal line settings SYNOPSIS stty [-F DEVICE | --file=DEVICE] [SETTING]... ...

  8. 下载pdf_不同操作系统,无法正常下载(兼容性问题)

    [功能点]:下载pdf文件 [问题描述]:window上传附件,linux无法下载 [根本原因]:window中路径分割符为"\",linux中路径分割符为"/" ...

  9. 图像的 SNR 和 PSNR 的计算

    PSNR 的公式很容易搜到. http://www.360doc.com/content/12/0605/21/4129998_216244993.shtml http://blog.sina.com ...

  10. 实例演示使用RDIFramework.NET 框架的工作流组件进行业务流程的定义—请假申请流程-Web

    实例演示使用RDIFramework.NET 框架的工作流组件 进行业务流程的定义—请假申请流程-Web 参考文章: RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系 ...