hibernate缓存说明
一级缓存,不是用来提升性能,是用来处理事务的
二级缓存,对所有的session都有效,生命周期与sessionFactory相同,在项目启动时创建,项目关闭时销毁,是为了提升性能
hibernate查询策略:Hibernate有2中查询机制:
2.1 session
session.save() update() delete() get() load()
session方式每次执行一条记录,默认不用配置就支持二级缓存,因此,read-only 对session是有效的。
在session中如果hibernate.cfg.xml中配置了read-only,则update()和delete()会操作失败,save()、get()和load()操作成功。
2.2 HQL
HQL方式用来执行对条记录:list() executeUpdate()
二级缓存配置read-only,对HQL默认是无效的
注意:HQL中没有save方法
<!-- 配置二级缓存 提供商EhCache,此处并不是缓存的jar包,而是缓存jar包的索引属性 -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- 配置哪些类支持缓存 -->
<class-cache usage="read-only" class="com.ssh.shop.model.Product"/>
<ehcache>
<!-- 如果缓存内存溢出,则存储到硬盘 -->
<diskStore path="java.io.tmpdir"/> <!--
<defaultCache
maxElementsInMemory="10000" :内存支持的最大对象数量
eternal="false" :对象是否永久有效,建议为false,这样下面的参数才有效
timeToIdleSeconds="60" :对象间隔周期(单位:秒),当在该周期内对象没有被访问,自动销毁
timeToLiveSeconds="120" :对象生命周期(单位:秒)
overflowToDisk="true" :是否支持溢出到硬盘
diskPersistent="false" :非web
diskExpiryThreadIntervalSeconds="120" :非web
memoryStoreEvictionPolicy="LRU" :对象替换策略
1.FIFO(先进先出,已淘汰)
2.LRU(最近最少策略,忽略访问频率,最早访问的会被替换)
3.LFU(最近最未使用测试,忽略访问先后时间,访问最少的会被替换):首页数据经常访问的不应该被替换,使用该策略
/>
-->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="60"
timeToLiveSeconds="120"
overflowToDisk="true"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LFU"
/>
</ehcache>
hibernate缓存说明的更多相关文章
- Hibernate 缓存机制浅析
1. 为什么要用 Hibernate 缓存? Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数据源 ...
- hibernate缓存机制(转)
原文出处:http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html 一.why(为什么要用Hibernate缓存?) Hibernate是 ...
- 【转】hibernate缓存:一级缓存和二级缓存
什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能.Hibernate在进行 ...
- Hibernate缓存(转)
来自:http://www.cnblogs.com/wean/archive/2012/05/16/2502724.html 一.why(为什么要用Hibernate缓存?) Hibernate是一个 ...
- 初识Hibernate 缓存
生活就像一杯咖啡,让你我慢慢的品尝,品尝它的苦涩和甘甜...... 一.什么是Hibernate缓存. 解析:白话来说就是缓存数据的容器 官方标准点缓存:是计算机领域的概念,它介于应用程序和永久性数据 ...
- Hibernate缓存原理与策略
Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...
- [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate缓存原理与策略 Hibernate缓存原理:
Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...
- Hibernate 缓存机制
一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...
随机推荐
- Delphi 线程同步技术(转)
上次跟大家分享了线程的标准代码,其实在线程的使用中最重要的是线程的同步问题,如果你在使用线程后,发现你的界面经常被卡死,或者无法显示出来,显示混乱,你的使用的变量值老是不按预想的变化,结果往往出乎意料 ...
- 160918、BigDecimal运算
java.math.BigDecimal.BigDecimal一共有4个够造方法,让我先来看看其中的两种用法: 第一种:BigDecimal(double val)Translates a doubl ...
- hadoop概述测试题和基础模版代码
hadoop概述测试题和基础模版代码 1.Hadoop的创始人是DougCutting?() A.正确 B.错误答对了!正确答案:A解析:参考课程里的文档,这个就不解释了2.下列有关Hadoop的说法 ...
- Dijkstra 算法、Kruskal 算法、Prim算法、floyd算法
1.dijkstra算法 算最短路径的,算法解决的是有向图中单个源点到其他顶点的最短路径问题. 初始化n*n的数组. 2.kruskal算法 算最小生成树的,按权值加入 3.Prim算法 类似dijk ...
- JavaEE基础(二十七)/反射、JDK新特性
1.反射(类的加载概述和加载时机) A:类的加载概述 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载 就是指将class文件读入 ...
- 各种drawable
BitmapDrawable 可以把小图片平铺布满布局来设置背景. PictureDrawable 记录绘制过程 ClipDrawable 裁剪 进度条 InsetDrawabl ...
- python中split函数的使用
最近学习python,对split函数做了下总结,内容如下:
- Fishnet(暴力POJ 1408)
Fishnet Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1911 Accepted: 1227 Descripti ...
- Poj(2195),最小费用流,SPFA
题目链接:http://poj.org/problem?id=2195 Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- Intent官方教程(5)在manifest中给组件添加<Intent-filter>
Receiving an Implicit Intent To advertise which implicit intents your app can receive, declare one o ...