Hibernate <一级缓存>
Hibernate缓存分为三级:
一级缓存:基于事务级别(内存)的缓存,也可以成为session级别缓存
二级缓存:依赖于第三方,当请求一个对象时,先在缓存里面查找,如果没有就执行查询语句
查询缓存:基于二级缓存原理如上,将查询条件作为key,查询结果作为value放入缓存
因为之前听课时,老师是三种缓存半天就讲完了,加上没有预习,所以听的云里雾里,
现在来分别 总结一下,整理思路!
一级缓存:
一级缓存是存放实体类对象的缓存,且他只允许当前线程的用户使用!
生命周期:session关闭,一级缓存关闭
支持一级缓存的方法:
get,load,itetator,save
这三种方法之间细微的区别:
1.同一session:
两个get查询数据时:会执行一级缓存
两个load查询数据时:会执行一级缓存
两个itetartor查询对象时,n+1查询一次,第二次查询时,查询id,会执行一级缓存
(注意)两个itetartor查询普通属性时,不会执行以及缓存,因为一级缓存只会缓存实体类对象
当对对象保存时,save然后执行查询,会执行以及缓存
2.不同session:
save,itetator,get,load都不会执行一级缓存,因为 不同session之间不能够共享,这里可以测试得出结论
补充:大数据操作:
当执行大数据操作时,应该考略缓存是否溢出的问题
解决办法,添加代码
假如我是要添加一万条数据
我使用for循环进行添加
这时我判断if(i % 20 ==0)
{
session.flush();
//清空缓存
session.clear();
}
Hibernate <一级缓存>的更多相关文章
- Hibernate ——二级缓存
一.Hibernate 二级缓存 1.Hibernate 二级缓存是 SessionFactory 级别的缓存. 2.二级缓存分为两类: (1)Hibernate内置二级缓存 (2)外置缓存,可配置的 ...
- 配置Hibernate二级缓存时,不能初始化RegionFactory的解决办法
配置Hibernate 二级缓存时,出现以下bug提示: SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder&quo ...
- 配置Hibernate二级缓存步骤
配置Hibernate二级缓存步骤: 加入二级缓存的jar包及配置文件 jar包位置:hibernate-release-4.1.8.Final\lib\optional\ehcache下所有jar包 ...
- Hibernate 二级缓存 总结整理(转)
和<Hibernate 关系映射 收集.总结整理> 一样,本篇文章也是我很早之前收集.总结整理的,在此也发上来 希望对大家有用.因为是很早之前写的,不当之处请指正. 1.缓存:缓存是什么, ...
- Hibernate(十六):Hibernate二级缓存
Hibernate缓存 缓存(Cache):计算机领域非常通用的概念.它介于应用程序和永久性数据存储源(如磁盘上的文件或者数据库)之间,起作用是降低应用程序直接读取永久性数据存储源的频率,从而提高应用 ...
- hibernate二级缓存demo2
@Test public void hello3(){ Session session=sessionFactory.openSession(); List list = session.create ...
- hibernate二级缓存整合
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http:// ...
- ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存
ssh整合hibernate 使用spring管理hibernate二级缓存,配置hibernate4.0以上二级缓存 hibernate : Hibernate是一个持久层框架,经常访问物理数据库 ...
- spring boot集成ehcache 2.x 用于hibernate二级缓存
https://www.jianshu.com/p/87b2c309b776 本文将介绍如何在spring boot中集成ehcache作为hibernate的二级缓存.各个框架版本如下 spring ...
- js相关(easyUI),触发器,ant,jbpm,hibernate二级缓存ehcache,Javamail,Lucene,jqplot,WebService,regex,struts2,oracle表空间
*********************************************js相关********************************************* // 在指 ...
随机推荐
- app启动调用的api
(8)在app启动时,调用一个初始化api获取必要的信息 通过这个初始化api,获取一下必要的信息,例如,最新的app版本.当发现本地app的版本已经低于最新的app版本,可提示用户更新.当然了,这个 ...
- 推荐《HeadFirst设计模式》
相对于国内初版的<大话设计模式>,HeadFirst真的是更好的选择,虽然看起来很厚.很吓人,但对于初学者而言浅显易懂.直击要点,即使对设计模式熟悉的同学去读这本书相信也有很大的收获.用了 ...
- zepto源码--核心方法(类数组相关)--学习笔记
从这篇起,在没有介绍到各类插件之前,后面将陆续介绍zepto对外暴露的核心方法.即$.fn={}里面的所有方法的介绍.会配合zepto的API进行介绍. 其实前面已经介绍了几个,如width,heig ...
- Java反射的三种实现方式
Foo foo = new Foo(); 第一种:通过Object类的getClass方法 Class cla = foo.getClass(); 第二种:通过对象实例方法获取对象 Class cla ...
- cocos2d-x场景切换动画
void StartScene::beginGame() { CCLog("beginGame"); //CCTransitionScene *trans ...
- selected对话框全选
selected对话框全选 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- mongodb的一些基本操作
1.列出所有数据库 >show dbs 2.使用数据库 >use memo 3.列出当前数据库的collections >show collections 4.显示当前正 ...
- [Android Tips] 4. Dismiss PopupWindow when touch outside
PopupWindow.setFocusable(true);
- 如何在断开ssh连接后仍然保持服务器正常运行程序
问题描述:当SSH远程连接到服务器上,然后运行一个Python程序(bpr.py),然后把终端开闭(切断SSH连接)之后,发现该程序执行中断. 解决方法:使用nohup命令让程序在关闭窗口(切换SSH ...
- 20145320《Java程序设计》第一次实验报告
20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...