1、一级缓存是session级的缓存,session结束即事务提交,session关闭,缓存清除。效果不大

get方式:一个session内,第二次查询不连数据库。适用于一级缓存

load方式:懒加载查询(查询时不执行sql,使用结果时才会执行sql),第二次查询不连数据库。适用于一级缓存

createQuery(hql).list():查询了整个list,第一次调用list()时,执行sql。第二次查询时,又执行了sql,说明不使用一级缓存。也就是不使用二级缓存

   createQuery(hql).iterate():只查询了id,第一次调用iterate()时,执行sql,查询id(查询部分属性),当得到对象并且使用时,会出现查询整个实体语句。但第二个iterate()时,执行sql(不适用一级缓存),查询id(部分字段)   得到对象时不会产生语句,适用一级缓存。查询部分字段,返回object[]数组,不适用一级缓存。查询部分字段,封装成对象

例如String sql = select new UserPoJo(u.id,u.name) from UserPoJo u;第二次同样执行了sql,也不适用一级缓存,缓存只认全部字段的对象。

save:在一个session中,先新增save ,然后get 或者load   save方法也是使用一级缓存

2、二级缓存是sessionFactory级别缓存。进程级缓存,工厂级缓存,可以被所有session共享。提升性能用

主要是配置第三方厂家。有jar包,cache的策略文件(Eh..缓存),配置二级缓存厂商类,开启二级缓存,二级缓存属性,配置哪些类适用二级缓存,还需要类的属性(需要放到文件的最下面),例如只读。

二级缓存可以管理,可以通过evict清空

3、查询缓存

查询缓存存储的是部分属性,也叫普通属性

查询缓存 会存储实体对象的id

查询缓存的生命周期不确定

查询缓存也需要配置

list():一个session中,第二次查询不执行sql,说明适用查询缓存。查询的是部分字段;两个session中,同样适用,说明查询缓存与session无关

hibernate 一级缓存,二级缓存,查询缓存的更多相关文章

  1. 说说自己对hibernate一级、二级、查询、缓存的理解。

    说说自己对hibernate一级.二级.查询.缓存的理解. 2016-03-14 21:36 421人阅读 评论(0) 收藏 举报  分类: web开发(19)  版权声明:本文为博主原创文章,未经博 ...

  2. hibernate缓存机制详细分析(一级、二级、查询缓存,非常清晰明白)

    本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别).二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题. 随笔虽长,但我相信 ...

  3. hibernate笔记--缓存机制之 二级缓存(sessionFactory)和查询缓存

    二级缓存(sessionFactory): Hibernate的二级缓存由SessionFactory对象管理,是应用级别的缓存.它可以缓存整个应用的持久化对象,所以又称为“SessionFactor ...

  4. Hibernate第十二篇【二级缓存介绍、缓存策略、查询缓存、集合缓存】

    Hibernate二级缓存介绍 前面我们已经讲解过了一级缓存,一级缓存也就是Session缓存,只在Session的范围内有效-作用时间就在Session的作用域中,范围比较小 Hibernate为我 ...

  5. ADO.NET EF 4.2 中的查询缓存(避免查询缓存)

    在WinForm系统中遇到了个问题,Form1是查询窗口,根据条件查询出所有数据,双击列表后创建弹出Form2窗口编辑单个记录,但编辑后保存后,在Form2中查询到的还是旧的数据,实际数据库中已经更新 ...

  6. Hibernate一级缓存、二级缓存以及查询缓存的关系

    转载自http://blog.csdn.net/maoyeqiu/article/details/50209893 前两天总结了一下二级缓存和查询缓存的关系,但是又有一个新的问题,就是查询缓存缓存到二 ...

  7. Hibernate的一级缓存、二级缓存和查询缓存。

    Hibernate的Session提供了一级缓存的功能,默认总是有效的,当应用程序保存持久化实体.修改持久化实体时,Session并不会立即把这种改变提交到数据库,而是缓存在当前的Session中,除 ...

  8. [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  9. SSH框架搭建步骤总结以及Hibernate二级缓存,查询缓存

    二级缓存.查询缓存 一级缓存: 默认启动,生命周期是和session同步的,session独享 二级缓存: 需要加载配置信息,生命周期是和应用服务器同步,session共享 1:在hibernate. ...

  10. Hibernate中 一 二级缓存及查询缓存(2)

    缓存:缓存是什么,解决什么问题?  位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache.缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更 ...

随机推荐

  1. iOS内存管理和优化 from 刘延军

  2. Parse how to write flash in uefi shell.

    Step: 1.     Enable 2.     Read 3.     Write 4.     Disable FI_GUID gEfiSFlashProtocolGuid = FLASH_P ...

  3. .net 4中使用 dynamic,将json字符串转成对象的 万能方法。

    在.net 4中增加了对弱类型的支持.为和弱类型的对象进行数据交换提供了方法.我们常常会遇到将json字符串转成对象的情景,虽然可以使用 JavaScriptSerializer 或者 DataCon ...

  4. 在CentOS 6.4中支持exfat格式的U盘

    CentOS系列一直没有默认支持使用exfat格式的大容量U盘. 可以通过添加fuse-exfat模块来支持.根据网上资料,整理如下: 1.下载fuse-exfat支持软件: exfat支持是通过fu ...

  5. jQuery(十二);事件绑定

    一.bind() bing()用来绑定事件,例如: 二.unbind() unbind()用来解除事件的绑定.例如: 三.on() on()方法用来绑定事件,例如: 四.off() off()方法用来 ...

  6. Entity Framework应用:导航属性

    一.主键和外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组是能唯一标识一条记录,该属性组就可以称为主键.例如: 学生版(学号.姓名.性别.班级) 其中每个学生的学号是唯一的,学号就是一 ...

  7. Spring cloud系列十四 分布式链路监控Spring Cloud Sleuth

    1. 概述 Spring Cloud Sleuth实现对Spring cloud 分布式链路监控 本文介绍了和Sleuth相关的内容,主要内容如下: Spring Cloud Sleuth中的重要术语 ...

  8. Spring Cloud Config 配置中心高可用

    详细参见 <Spring Cloud 与 Docker微服务架构实战> p163-9.10 Spring Cloud Config 与 Eureka 配合使用 p163-9.12 Conf ...

  9. JQuery控制radio选中和不选中方法总结

    一.设置选中方法 代码如下: $("input[name='名字']").get(0).checked=true; $("input[name='名字']"). ...

  10. VMware Fusion 5 正式版序列号

    HV4KJ-2X10K-VZ768-DRAGP-8CU2F MY63N-D0HE2-0ZXC1-HV954-937JL