一、一级缓存

  Hibernate的Session提供了一级缓存的功能,默认总是有效的,当应用程序保存持久化实体、修改持久化实体时,Session并不会立即把这种改变提交到数据库,而是缓存在当前的Session中,除非显示调用了Session的flush()方法或通过close()方法关闭Session才提交到数据库中。通过一级缓存,可以减少程序与数据库的交互,从而提高数据库访问性能。

二、二级缓存 
  SessionFactory级别的二级缓存是全局性的,所有的Session可以共享这个二级缓存。不过二级缓存默认是关闭的,需要显示开启并指定需要使用哪种二级缓存实现类(可以使用第三方提供的实现)。一旦开启了二级缓存并设置了需要使用二级缓存的实体类,SessionFactory就会缓存访问过的该实体类的每个对象,除非缓存的数据超出了指定的缓存空间。

三、查询缓存 
  一级缓存和二级缓存都是对整个实体进行缓存,不会缓存普通属性,如果希望对普通属性进行缓存,可以使用查询缓存。查询缓存是将HQL或SQL语句以及它们的查询结果作为键值对进行缓存,对于同样的查询可以直接从缓存中获取数据,查询缓存默认也是关闭的,需要显示开启。

最新文章

  1. 我的Sharepoint母版页的使用
  2. iOS开发如何学习前端
  3. lua中常量的实现及表的深拷贝实现
  4. 对QT的理解——能在公司里不做Java,不做很偏门的产品,不使用偏门的语言,还有钱挣,要有感恩的心
  5. 【tyvj1860】后缀数组
  6. 找工作ing
  7. mongo db 使用方法
  8. ssh 与 Telnet 的区别
  9. @property、@synthesize和dynamic的用法
  10. docker安装hadoop
  11. u-boot-2016.07 README文档结构
  12. java if与for循环的题
  13. 管道及I/O重定向
  14. C# 哈希表&列队&栈
  15. P2885 [USACO07NOV]电话线Telephone Wire
  16. Centos 6.5安装mysql
  17. Android------------------RecyclerView学习
  18. linux命令总结vmstat命令
  19. dubbo 多协议和多注册中心
  20. 【剑指offer】输入一颗二叉树的根节点,求二叉树的深度,C++实现

热门文章

  1. Google Play Services Library update and missing symbol @integer/google_play_services_version
  2. 深入理解java虚拟机---读后笔记(垃圾回收)
  3. linux内核源码阅读之facebook硬盘加速flashcache之五
  4. linux安装php遇到的问题
  5. twisted的一些代码
  6. C#根据文件流判断文件类型
  7. Java基础之"=="和 和 equals 方法的区别
  8. 以Android环境为例的多线程学习笔记(二)-----------------锁和条件机制
  9. 让IE6也能智能控制图片最大宽、高度
  10. 你需要了解的JS框架