浏览 5718 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-03-21
最近做的两个项目其中一个需求测试一下缓存机制下的运行效率,结果配了半天,老是不起作用,而另一套同样机制下的应用,确起作用查了两个系统的配置也一样,下面是我ehcache.xml 文件的信息 <?xml version="1.0" encoding="UTF-8"?> <ehcache> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="999999999" eternal="true" timeToIdleSeconds="10000" timeToLiveSeconds="10000" overflowToDisk="true" /> </ehcache> 下面是部份applicationContext.xml <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref ="gzMobileSource" /> <property name="lobHandler" ref ="oracleLobHandler" /> <property name="mappingDirectoryLocations"> <list> <value>classpath:/com/kmi/expert/model</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.max_fetch_depth">0</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="cglib.use_reflection_optimizer">false</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop> <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop> </props> </property> </bean> ehcache.xml文件放置在src目录中,编译后输出在WEB-INF/classes/下面。持久类的映射如下 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="com.kmi.expert.model"> <class name="Displaytype" table="DISPLAYTYPE"> <cache usage="read-only"/> <id name="id" type="integer" column="DISPLAYTYPEID"> <generator class="org.hibernate.id.Assigned" /> </id> 中间部份略... </class> </hibernate-mapping>
我对缓存是否起作用的判断是,通过执行相同的操作,检查输出的SQL,发现每次执行都输出了相同的SQL,条数也一样。不知道那位达人能指点一二。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-03-21
你是否在持久化实体的映射文件里配置缓存策略?你是如何获得实体的?是通过id Load还是通过hql查询?hql查询的时候你没有使用query缓存吧?
|
|
返回顶楼 | |
发表时间:2008-03-21
问题补充齐了
|
|
返回顶楼 | |
发表时间:2008-03-21
那么你使用什么方法获得实体对象的。Hibernate的二级缓存主要是对load方法起作用。如果配置了Query缓存,那么对使用同一条件的HQL查询语句也可以起作用。你是用什么方式查询对象的?
|
|
返回顶楼 | |
发表时间:2008-03-24
大部份都是Query,很少有Load方式。
|
|
返回顶楼 | |