快速业务通道

hibernate annoation(十一 缓存Ehcache 采用annoation) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
ator.next();    System.out.print(a2.getId() + "/");   }    HibernateSessionFactory.closeSession();  }

hibernate annoation(十一 缓存Ehcache 采用annoation)(3)

时间:2009-10-10 javaeye ericjoe

控制台信息:

Java代码

Hibernate: select b0_.id as id1_, b0_.bname as bname1_ from B b0_ where b0_.id>?  11/14/18/25/26/27/28/29/Hibernate: select b0_.id as id1_, b0_.bname as bname1_ from B b0_ where b0_.id>?  11/14/18/25/26/27/28/29/

只发出了一次sql 第二次从缓存中取

我们配置我们自己的缓存文件:

Java代码

 <cache name="cache_a"     maxElementsInMemory="5"     eternal="false"     timeToIdleSeconds="300"     timeToLiveSeconds="600"     overflowToDisk="true"     />

我们将maxElementsInMemory设置小一点 我们就可以看见磁盘的缓存文件:

首先说明:我们在ehcache.xml  <diskStore path="java.io.tmpdir"/>配置了缓存溢出到的磁盘路径

可以通过:

Java代码

System.out.println(System.getProperty("java.io.tmpdir"));

查询。

测试代码:

Java代码

public static void main(String[] args) throws Exception {

Java代码

System.out.println(System.getProperty("java.io.tmpdir"));  getTest();  getTest();  Thread.sleep(10000);

Java代码

}

我们在最后暂停10秒来查看磁盘文件

Java代码

public static void getTest() throws Exception {  Session session = HibernateSessionFactory.getSession();  Query q = session.createQuery("from B where id>?");  q.setParameter(0, 10);  q.setCacheable(true);  q.setCacheRegion("cache_a");//使用我们自己配置的缓存  List list = q.list();  for (Iterator iterator = list.iterator(); iterator.hasNext();) {   B a2 = (B) iterator.next();   System.out.print(a2.getId() + "/");  }   HibernateSessionFactory.closeSession();  }

控制台信息:

Java代码

C:\DOCUME~1\eric\LOCALS~1\Temp\      //我的java.io.tmpdir  Hibernate: select b0_.id as id1_, b0_.bname as bname1_ from B b0_ where b0_.id>?  11/14/18/25/26/27/28/29/Hibernate: select b0_.id as id1_, b0_.bname as bname1_ from B b0_ where b0_.id>?  11/14/18/25/26/27/28/29/

查看磁盘信息:

Java代码

在文件按目录下有一下文件: com.eric.po.B.data--------0kb cache_a.data  ------------4 kb org.hibernate.cache.StandardQueryCache.data ---0kb  org.hibernate.cache.UpdateTimestampsCache.data -----0kb

其中cache_a中保存了我们的缓存文件

StandardQueryCache.data 则是 设置默认的查询缓存的数据过期策略  产生的文件,

org.hibernate.cache.UpdateTimestampsCache.data则是 设置时间戳缓存的数据过期策略 

如果不适用我们自己的缓存配置就会使用类类的全路径路径文件(com.eric.po.B.data)来缓存我们的数据。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号