1 一级缓存是指session缓存,当同一个session查询相同数据时,可以直接去缓存中拿,但如果是不同session即使查询内容相同也得去重新查询数据库。
2 二级缓存是指sessionfactory缓存,可以跨越session存在,即使不同的session当查询相同内容可以直接从二级缓存中拿数据而不用去访问数据库。二级缓存需要借助外界工具。
2.1.
打开二级缓存的方法是在hibernate.cfg.xml中配置:
<property name="cache.use_second_levle_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
然后将ehcache的jar包和commons-logging包放入项目中。
2.2.
然后配置类,如果使用的是annotation的方式,则在@Entity下加上
@Cache(usage= CacheConcurrencyStrategy.READ_WRITE)
如果使用的是配置xml的方式,则在对应的hbm.xml中Class下配置
<cache usage="read-write"/>
Cache的属性有三个
usage="transactional|read-write|nonstrict-read-write|read-only" region="RegionName" include="all|non-lazy"
usage(必选)说明了缓存的策略: transactional、 read-write、 nonstrict-read-write或 read-only一般使用的是read-write
region(可选, 默认为类或者集合的名字(class or collection role name))指定第二级缓存的区域名(name of the second level cache region)
include(可选,默认为 all)non-lazy 当属性级延迟抓取打开2.3. 关于二级缓存的使用:load,iterator默认使用二级缓存,list默认往二级缓存中存数据,但查询的时候不适用二级缓存,如果希望查询的时候也使用缓存则可以使用“查询缓存” :使用的方法是在hibernate.cfg.xml中加入
<property name="cache.use_query_cache">true</property>
然后在query对象后加setCacheable(true)如:
List<Husband> list1 = (List<Husband>)session1.createQuery("from Husband").setCacheable(true).list();
分享到:
相关推荐
传播智客,为Spring集成的Hibernate配置二级缓存、cache.xml
为Spring集成的Hibernate配置二级缓存
主要讲解hibernate缓存的配置和和使用方法,以及一级缓存和二级缓存的定义和区别,和查询缓存的使用
文档中说明了Hibernate二级缓存的事务范围、进程范围、集群范围的缓存配置。主要针对进程范围EhCacheProvider进行讲解,及查询缓存的讲解。
学习hibernate的必备,提供一个简易的流程图,方便记忆和查找
基于springboot最新版本2.1.4.RELEASE,采用jpa为dao层框架,配置redis(redisson)为hibernate的二级缓存。
NULL 博文链接:https://364232252.iteye.com/blog/2369161
此配置和包,是springMVC4.3.3 +spring4+hibernate5.1.3+二级缓存ehcache(不用可以关闭)+fastjson。 是正常运行的项目里拷出来的,方便大家使用。
本人在做项目时用到了Hibernate的二级缓存,使用的是EhCache,结合本人自己的理解总结了如何在java web项目中配合Hibernate使用二级缓存,以提高程序的性能,附带需要的文件,参考的文件,和测试类以及说明。
hibernate5.1二级缓存包
Hibernate二级缓存 在一个数据库系统中,如果缓存设置的合适,那么可以极大的提高系统的效率,Hibernate作为一个ORM工具 提供了缓存的机制,包括一级(Session级)缓存和二级(SessionFactory级)缓存。这里主要...
-- 查询的二级缓存配置 --> <property name="hibernate.cache.use_query_cache">true <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider 4.0配置如下: <property name="hibernate...
Hibernate中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行... Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存
hibernate4配置ehcache二级缓存,以及相关的jar都在源码中。
Hibernate二级缓存架包及相应配置文件
Hibernate EhCache 二级缓存配置
一对一映射 hibernate优化配置一级二级缓存步骤 有图有真相
Hibernate允许在类和集合的粒度上设置第二级缓存。在映射文件中,和元素都有一个子元素,这个子元素用来配置二级缓存。 示例:以category(产品类别)和product(产品)的映射为例: 1) 修改要配置缓存的那个持久化类的...