Hibernate整合EHCache实现二级缓存的步骤如下:
1. 导入EHCache和Hibernate EHCache依赖包。在Maven项目中添加:
<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>2.10.4</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-ehcache</artifactId> <version>5.2.17.Final</version> </dependency>
2. 配置EHCache。在src目录下添加ehcache.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false"> <!-- 默认缓存区 --> <defaultCache eternal="false" memoryStoreEvictionPolicy="LFU" timeToLiveSeconds="1000" timeToIdleSeconds="1000" overflowToDisk="false" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" /> <!-- 实体缓存区 --> <cache name="com.itranswarp.learnjava.hibernate.Customer" eternal="false" memoryStoreEvictionPolicy="LFU" timeToLiveSeconds="100000" timeToIdleSeconds="100000" overflowToDisk="false" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" /> </ehcache>
3. 配置Hibernate使用EHCache。在hibernate.cfg.xml中添加:
<property name="hibernate.cache.region.factory_class"> org.hibernate.cache.ehcache.EhCacheRegionFactory </property> <property name="hibernate.cache.use_second_level_cache">true</property> <property name="hibernate.cache.use_query_cache">true</property> <property name="net.sf.ehcache.configurationResourceName"> ehcache.xml </property>
4. 实体类添加@Cacheable注解。在实体类Customer上添加:
@Cacheable @Entity public class Customer { }
5. Session执行查询。当Session执行查询后,结果将被添加到二级缓存中;再次执行相同查询时将直接从缓存中获取结果,提高效率。
List<Customer> list = session.createQuery("from Customer").list(); List<Customer> list2 = session.createQuery("from Customer").list();
第二次查询results2将直接从EHCache缓存中获取。
以上步骤实现了Hibernate框架与EHCache的整合,实现了查询结果的二级缓存,可以很大程度提高数据库访问效率。
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录