ehcache二级缓存不起作用??

问题描述

我的一个小项目里面设置了二级缓存,并把缓存溢出的磁盘放在D盘里面,当我把缓存的最大存放量设为一的时候,在D盘可以看到有,缓存的记录,但是等我再去取值的时候,怎么还是从数据库里面拿 啊 ??? 问题补充:alyouge 写道

解决方案

说的不详细,一下几点需要注意!1. 要在spring配置文件加入Java代码 <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> <prop key="hibernate.cache.use_query_cache">true</prop> 2. 要在 实体的hbm.xml里面加入Java代码 <cache usage="read-write"/> 要加到CLASS标签里面。3. 如果要使用查询缓存<prop key="hibernate.cache.use_query_cache">true</prop> 是必要的,当然还有query.setCacheable(true)。

时间: 2024-11-02 05:43:21

ehcache二级缓存不起作用??的相关文章

Hibernate+ehcache二级缓存技术

1.首先设置EhCache,建立配置文件ehcache.xml,默认的位置在class-path,可以放到你的src目录下: <?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="10000" <!

安卓listview加载网络图片时,当时用了软引用之后,是不是就不用在使用二级缓存机制了

问题描述 安卓listview加载网络图片时,当时用了软引用之后,是不是就不用在使用二级缓存机制了 软引用不就是避免OOM的吗,和二级缓存机制的作用是一样的吧,可能二级缓存会更打程度的减少访问网络的次数吧,,但是如果在一个listview加载网络图片的项目中,是不是这二者选择一个用就行了? 解决方案 首先,ListView加载图片,使用什么软引用什么的,其实都是避免oom,那么你可以做到一下几点 1.使用缓存,至于你说的两种,任意一种都是可以的,起码起到了作用 2.当ListView去网络读取图

Spring3+hibernate4配置二级缓存的问题

问题描述 Spring3+hibernate4配置二级缓存的问题 com/wjh/po/AfterPostPO.hbm.xmlcom/wjh/po/LogPO.hbm.xmlcom/wjh/po/PostPO.hbm.xmlcom/wjh/po/UserPO.hbm.xml org.hibernate.dialect.MySQLDialecttruefalseupdatetruetrue spring3+hibernate4 配置ehcache二级缓存只要一把上面的二级缓存配置的注释部分去掉,访

如何知道Hibernate已经成功运用了二级缓存EhCache

http://yulimin.javaeye.com/blog/30826 问题是DEBUG之后我也不清楚应该看哪里! DEBUG的信息实在是太多,很难看全! 能否给个实例,指出那里显示了使用了二级缓存!   对Log4J进行分类分级一下,我的如下,你可以进行修改: 代码 log4j.threshold = ALL    log4j.rootLogger = ALL    #    log4j.category.org.springframework debug,FrameWorkSpring

MyBatis的一级缓存和二级缓存 以及 mybatis和ehcache缓存框架整合

查询缓存 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. 基本由此图可以看出,我们在每一层都需要相应的缓存. mybatis持久层缓存 mybatis提供一级缓存和二级缓存 mybatis一级缓存是一个SqlSession级别,sqlsession只能访问自己的一级缓存的数据,二级缓存是跨sqlSession,是mapper级别的缓存,对于mapper级别的缓存不同的sql

Hibernate中二级缓存的配置和使用

(一)Hibernate的二级缓存策略的一般过程如下: 1) 条件查询的时候,总是发出一条select * from table_name where -. (选择所有字段)这样的SQL语句查询数据库,一次获得所有的数据对象. 2) 把获得的所有数据对象根据ID放入到第二级缓存中. 3) 当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查:查不到,如果配置了二级缓存,那么从二级缓存中查:查不到,再查询数据库,把结果按照ID放入到缓存. 4) 删除.更新.增加数据的时

详解Java的Hibernate框架中的缓存与二级缓存_java

缓存 今天我们就来讲一下hibernate中实体状态和hibernate缓存.  1)首先我们先来看一下实体状态:  实体状态主要分三种:transient,persitent,detached.  看英文应该就大概明白了吧.  transient:是指数据还没跟数据库中的数据相对应.  persistent:是指数据跟数据库中的数据相对应,它的任何改变都会反映到数据库中.  detached:是指数据跟数据库中的数据相对应,但由于session被关闭,它所做的修改不会对数据库的记录造成影响.

hibernate 中的一级缓存 二级缓存

1.什么是缓存? 缓存是介于物理数据源与应用程序之间,是对数据库中的数据复制一份临时放在内存中的容器,其作用是为了减少应用程序对物理数据源访问的次数,从而提高了应用程序的运行性能.Hibernate在进行读取数据的时候,根据缓存机制在相应的缓存中查询,如果在缓存中找到了需要的数据(我们把这称做"缓存命 中"),则就直接把命中的数据作为结果加以利用,避免了大量发送SQL语句到数据库查询的性能损耗.   缓存策略提供商: 提供了HashTable缓存,EHCache,OSCache,Swa

Hibernate二级缓存攻略

很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了. 我的经验主要来自hibernate2.1版本,基本原理和3.0.3.1是一样的,请原谅我的顽固不化. hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了. 二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehc