- 浏览: 518174 次
- 性别:
- 来自: 惠州
-
文章分类
- 全部博客 (255)
- ant (1)
- springMVC (2)
- ajax (4)
- oracle (12)
- SSH (13)
- struts1 (2)
- Hibernate (14)
- spring (5)
- jstl (1)
- 连接池 (1)
- acegi (4)
- java (17)
- jquery (11)
- div+css (4)
- drupal (1)
- php (8)
- freemaker调模板生成静态页面 (1)
- xml (1)
- json (2)
- javascript (9)
- 正则表达式 (4)
- Ext (8)
- jdbc (1)
- sql server (2)
- perl (5)
- db4o (1)
- webservice (4)
- flex (13)
- it资讯 (1)
- joomla (0)
- 设计模式 (1)
- struts2 (4)
- s2sh (8)
- linux (3)
- ejb (2)
- android旅途 (24)
- android (36)
- C/C++ (16)
- mysql (1)
最新评论
-
fengyuxing168:
IBelyService bs = IBelyService. ...
为 Android 添加 Java 层服务也就是添加自定义的aidl服务到serviceManager 通过ServiceManager.getService取 -
dengzhangtao:
"由于ActivityManagerService是 ...
binder理解 -
yzyspy:
ActivityManagerService:startHom ...
Android的Launcher成为系统中第一个启动的,也是唯一的 -
Matchstick:
使用SELECT DISTINCT alias FROM Po ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题 -
dlheart:
没看懂你什么意思啊,我遇到的问题是一对多,设了fetch = ...
hibernate 一对多表查询时fetchMode.join 生成left outer join 出来数据重复问题
原文出处:http://i.cn.yahoo.com/en.wan1982/blog/p_9/
1. 在Hibernate配置文件中设置:

































如果不设置“查询缓存”,那么hibernate只会缓存使用load()方法获得的单个持久化对象,如果想缓存使用findall()、 list()、Iterator()、createCriteria()、createQuery()等方法获得的数据结果集的话,就需要设置hibernate.cache.use_query_cache true 才行
2.首先设置EhCache,建立配置文件ehcache.xml,默认的位置在class-path,可以放到你的src目录下:





































Machine.


















"600" timeToLiveSeconds="600" overflowToDisk="false" diskPersistent="false"/>











以com.ouou.model.Videos为例子
在Videos.hbm.xml中配置:
<class name="Videos" table="TEST" lazy="false">
<cache usage="read-write" region="ehcache.xml中的name的属性值"/>注意:这一句需要紧跟在class标签下面,其他位置无效。
hbm文件查找cache方法名的策略:如果不指定hbm文件中的region="ehcache.xml中的name的属性值",则使用name名为com.ouou.model.Videos的cache,
如果不存在与类名匹配的cache名称,则用defaultCache。
如果Videos包含set集合,则需要另行指定其cache
例如Videos包含Tags集合,则需要
添加如下配置到ehcache.xml中
<cache name="com.ouou.model.Tags"
maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120"
timeToLiveSeconds="120" overflowToDisk="false" />
另,针对查询缓存的配置如下:
<cache name="org.hibernate.cache.UpdateTimestampsCache"
maxElementsInMemory="5000"
eternal="true"
overflowToDisk="true"/>
<cache name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="10000"
eternal="false"
timeToLiveSeconds="120"
overflowToDisk="true"/>
3、 选择缓存策略依据:
<cache usage="transactional|read-write|nonstrict-read-write|read-only" (1)/>
ehcache不支持transactional,其他三种可以支持。
read-only:无需修改, 那么就可以对其进行只读 缓存,注意,在此策略下,如果直接修改数据库,即使能够看到前台显示效果,
但是将对象修改至cache中会报error,cache不会发生作用。另:删除记录会报错,因为不能在read-only模式的对象从cache中删除。
read-write:需要更新数据,那么使用读/写缓存 比较合适,前提:数据库不可以为serializable transaction isolation level
(序列化事务隔离级别)
nonstrict-read-write:只偶尔需要更新数据(也就是说,两个事务同时更新同一记录的情况很不常见),也不需要十分严格的事务隔离,
那么比较适合使用非严格读/写缓存策略。
4、 调试时候使用log4j的log4j.logger.org.hibernate.cache=debug,更方便看到ehcache的操作过程,主要用于调试过程,实际应用发布时候,请注释掉,以免影响性能。
5、 使用ehcache,打印sql语句是正常的,因为query cache设置为true将会创建两个缓存区域:一个用于保存查询结果集 (
org.hibernate.cache.StandardQueryCache);另一个则用于保存最近查询的一系列表的时间戳(org.hibernate.cache.UpdateTimestampsCache)。
请注意:在查询缓存中,它并不缓存结果集中所包含的实体的确切状态;它只缓存这些实体的标识符属性的值、以及各值类型的结果。
需要将打印sql语句与最近的cache内容相比较,将不同之处修改到cache中,所以查询缓存通常会和二级缓存一起使用。
英文参考资料:http://ehcache.sourceforge.net/documentation/#mozTocId258426
博文参考:http://blog.csdn.net/yun15291li/archive/2006/02/21/604095.aspx
http://zyl.iteye.com/blog/68369
其他:http://dev.yesky.com/157/2557157.shtml
发表评论
-
关于openSession()与getCurrentSession()
2010-05-13 14:25 2226关于openSession()与getCurrentSessi ... -
s2sh 配置文件说明 application.xml文件配置说明
2010-05-13 10:22 2364Hibernate配置项 Xml代码 ... -
配置一个数据源 spring
2010-03-26 09:01 984配置一个数据源 Spring在第三方依赖包中包含了两个 ... -
Struts Spring Hibernate 事务管理的例子
2009-04-03 13:50 2989Struts Spring Hibernate 事务管理的例子 ... -
Spring的四种声明式事务的配置-Hibernate事务
2009-04-03 13:41 1980Spring的四种声明式事务的配置-Hibernate事务20 ... -
我的通用DAO理解,请大家指正
2008-11-20 12:28 4301首先声明我的资料大我来自javaeye,先谢谢各位. 但因本人 ... -
J2EE学习笔记——初试SSH之泛型通用DAO
2008-11-19 16:12 1698J2EE学习笔记——初试SSH之泛型通用DAO 在做项目的时候 ... -
一个acegi配置文件applicationContext-security-acegi.xm
2008-10-08 20:29 1750<?xml version="1.0" ... -
一个proxool连接池的applicationContext.xml配置文件
2008-10-08 20:23 1827applicationContext.xml <?xml ... -
一个web.xml配置文件
2008-10-08 20:20 2322web.xml <?xml version=" ... -
ssh 整合测试
2008-08-18 18:27 1849ssh 整合测试 关键字: ssh整合 搞了很久的ssh整合 ... -
我的智囊团构建全过程
2008-05-15 14:26 1716ssh综合实战 (Struts+sprin ...
相关推荐
《深入解析Hibernate二级缓存配置文件ehcache.xml》 在Java企业级开发中,数据库的高效访问是系统性能优化的关键之一。Hibernate作为一种流行的ORM(对象关系映射)框架,提供了强大的数据持久化能力。然而,频繁的...
集成MyBatis和Ehcache时,我们需要在MyBatis的全局配置文件(`mybatis-config.xml`)中指定`ehcache.xml`的位置,并启用二级缓存: ```xml ... <cache type="org.mybatis.cache.ehcache.EhcacheCache"> ...
Hibernate EhCache 二级缓存配置 Hibernate EhCache 二级缓存配置是 Hibernate 框架中的一种缓存机制,它可以提高应用程序的性能和效率。...通过配置 EhCache 缓存插件和 Dept.hbm.xml 文件,可以实现二级缓存的功能。
3. **配置Spring**:在Spring的配置文件(如`applicationContext.xml`)中,配置Hibernate SessionFactory,并注入二级缓存配置。以下是一个配置示例: ```xml <bean id="sessionFactory" class="org.spring...
**Ehcache二级缓存配置详解** Ehcache是一个广泛使用的开源Java缓存库,它提供了内存和磁盘存储的缓存解决方案,适用于提高应用程序性能和减少数据库负载。在Java应用中,尤其是在Spring框架中,Ehcache常被用作二...
本文将详细讲解Hibernate二级缓存的概念、工作原理,并结合给定的"ehcache.xml"配置文件和"Hibernate二级缓存架包",阐述如何设置和使用二级缓存。 一、Hibernate二级缓存概述 1.1 一级缓存与二级缓存的区别 一级...
以EhCache为例,我们需要在项目中引入ehcache-core或ehcache的依赖,并在Hibernate配置文件(hibernate.cfg.xml或persistence.xml)中启用二级缓存,添加如下配置: ```xml <property name="hibernate.cache.use_...
3. **配置 Mybatis**:在 Mybatis 的配置文件 `mybatis-config.xml` 中启用二级缓存并指定使用 Ehcache: ```xml ... <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> ... ``` 4. **Mapper 配置*...
在这个“Hibernate4二级缓存Ehcache案例”中,我们将深入探讨如何利用Ehcache作为Hibernate的二级缓存提供商,以提升应用性能。 首先,我们需要了解什么是二级缓存。一级缓存是Hibernate Session级别的缓存,每个...
### 配置EhCache二级缓存 #### 一、简介 EhCache是一个高性能、易于使用的开源缓存系统,最初由 Terracotta 组织开发。它支持多种缓存模型,包括本地缓存和分布式缓存。由于其简单易用且功能强大,EhCache 成为了 ...
**二级缓存ehcache** ehcache是Hibernate官方推荐的二级缓存实现,它是一个高性能、轻量级的缓存框架。使用ehcache可以将频繁访问的数据存储在内存中,避免了频繁的数据库交互,从而提高了系统的响应速度。ehcache...
### 二级缓存配置 #### 一、概述 在软件开发过程中,为了提高系统的性能与响应速度,常常会采用缓存技术来存储频繁访问的数据。其中,Hibernate作为一款流行的Java持久层框架,提供了多种级别的缓存支持,包括一级...
然后,在`hibernate.cfg.xml`配置文件中,指定缓存提供者,并开启二级缓存: ```xml <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory ...
2. **配置Hibernate**:在`hibernate.cfg.xml`配置文件中启用二级缓存并指定EHcache为缓存提供者。例如: ```xml <property name="hibernate.cache.use_second_level_cache">true <property name="hibernate....
在这个"Ehcache二级缓存.zip"压缩包中,可能包含了实现Ehcache二级缓存的相关文件,如jar包、配置文件和文档等。 1. **Ehcache二级缓存**:在Java应用中,一级缓存通常指的是JVM内的内存缓存,而二级缓存则可以是...
2. **配置Hibernate**:在Hibernate的配置文件`hibernate.cfg.xml`中,我们需要指定Ehcache作为二级缓存提供者。添加以下配置: ```xml <property name="hibernate.cache.use_second_level_cache">true ...
### Hibernate二级缓存配置详解 #### 一、概述 Hibernate 是一款开源的对象关系映射 (ORM) 框架,它极大地简化了 Java 应用程序与数据库之间的交互过程。在实际开发过程中,为了提高应用性能,我们经常需要对查询...
一级缓存是指 Hibernate 自己的缓存机制,而二级缓存是指使用第三方缓存工具,如 EhCache。 EhCache 是一种流行的 Java 缓存工具,支持多种缓存策略和存储方式。EhCache 可以将缓存存储在内存中,也可以将其存储在...
2. 配置Hibernate:在hibernate.cfg.xml配置文件中,我们需要声明使用Ehcache作为二级缓存提供者。通过设置`hibernate.cache.provider_class`属性为`org.hibernate.cache.EhCacheProvider`,可以启用Ehcache插件。...
1. **配置EHCache**:在`hibernate.cfg.xml`中,需要添加EHCache插件的相关配置,包括引入EHCache的配置文件、开启二级缓存支持等。 2. **实体类注解**:对于需要缓存的实体类,可以使用`@Cacheable`注解标记,指定...