`
jie66989
  • 浏览: 251006 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

hibernate缓存管理

阅读更多
hibernate中的一级缓存
由session管理,当session关闭时候自动清理,但是如果做大批量操作时候,会造成内存溢出的危险,可以用session.clear() 清除缓存中所有对象或者session.evict(user) 清除指定对象
使用save、update、saveOrupdate、load、get、list、iterate、lock方法都会向缓存中存对象
可以从缓存中读数据的只有: get、load、iterate
Query对象默认情况下不读缓存,如果要使其支持缓存,则要通过语法:
query.setCacheable(true);
<property name="cache.use_query_cache">true</property>
Criteria对缓存支持不足

hibernate中的二级缓存
save、update、saveOrupdate、load、get、list、query、Criteria方法都会填充二级缓存
get、load、iterate会从二级缓存中取数据
session.save(user) 如果user主键使用“native”生成,则不放入二级缓存
开启二级缓存
<property name="cache.use_second_level_cache">true</property>
为hibernate指定二级缓存的实现类
<property name="cache.provider_class">
org.hibernate.cache.OSCacheProvider

net.sf.ehcache.hibernate.EhCacheProvider
</property>

指明哪些类需要放入二级缓存,需要长期使用到的对象才有必要放入二级缓存
<class-cache class="entity.PetInfo" usage="read-only" /> //不允许更新缓存中的对象
<class-cache class="entity.PetInfo" usage="read-write" /> //允许更新缓存中的对象或在orm文件中:
<class name="entity.PetInfo" table="PetInfo" schema="dbo" catalog="epet">
<cache usage="read-only"/></class>

如果需要清除二级缓存,使用下面语法
sessionFactory.evict(User.class) 清除所有user
sessionFactory.evict(User.class,Id) 清除指定user



分享到:
评论

相关推荐

    Hibernate缓存管理.doc

    Hibernate缓存管理,全面,易懂...

    Hibernate 缓存管理

    Hibernate 缓存管理 实例,想深入理解Hiberante的朋友,可以去研究一下。

    Hibernate缓存管理[参照].pdf

    Hibernate缓存管理[参照].pdf

    Hibernate缓存管理

    当多个并发的事务同时访问持久化层的缓存的相同数据时,会引起并发问题,必须采用必要的事务隔离措施。在进程范围或集群范围的缓存,即第二级缓存,会出现并发问题。因此可以设定四种类型的并发访问策略,每一种策略...

    管理Hibernate的缓存

    管理Hibernate的缓存缓存 管理Hibernate的缓存缓存

    hibernate缓存和事务

    hibernate查询,事务管理,缓存等实现。

    hibernate3的缓存管理

    hibernate3的缓存管理

    hibernate 3中的缓存小结

    hibernate 3中的缓存小结 2.2. 一级缓存的管理: 当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在...

    hibernate二级缓存使用范例

    这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 ...

    hibernate事务,并发及缓存管理实例

    通过实例你也许会明白hibernate事务,并发及缓存管理的运行原理,如果对这个感兴趣的可以看看

    Java缓存框架Java缓存框架

    EhCache EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider。... 支持多缓存管理器实例,以及一个实例的多个缓存区域 9. 提供Hibernate的缓存实现 10. 等等

    springmvc+shiro+spring+hibernate+redis缓存管理示例

    完整的spring +springmvc+hibernate+shiro项目实例,详细的shiro配置介绍,通过redis管理用户session缓存。。。。。。。。

    hibernate基础教程

    在Hibernate中使用两极缓存结构,第一级缓存是Session级别的缓存,Session级别的缓存是由Hibernate管理的,一般情况下无需进行干预.第二级缓存是 SessionFactory级别的缓存,SessionFactory级的缓存可以进行配置和...

    spring hibernate 事务管理学习笔记(二)

    NULL 博文链接:https://microjava.iteye.com/blog/525981

    Java缓存框架 Ehcache.zip

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的CacheProvider... 支持多缓存管理器实例,以及一个实例的多个缓存区域9. 提供Hibernate的缓存实现10. 等等 标签:缓存

    struts2+hibernate的简单学生信息管理

    采用Struts2+Hibernate技术实现的简单信息管理,具有增删该查功能,添加了二级缓存,三级缓存功能,添加了日志功能,仅为初学者学习实用

    基于Struts2、Spring和Hibernate的投票管理系统

    基于S2SH的投票管理系统,可以创建、删除和修改单选和多选投票,涉及到Struts2校验、拦截器、国际化、Spring声明式事务管理,Hibernate缓存等技术

    通用后台管理系统(ExtJS 4.2+Hibernate 4.1.7+Spring MVC 3.2.8)

    4、Hibernate集成二级缓存框架Ehcache。 5、数据库是MySQL、Oracle和SQL Server,Hibernate的Dialect可使程序移植到其他数据库。 6、采用开源的互动地图Javascript库Leaflet,处理自定义在线地图。 7、采用Google ...

    SpringBoot2 整合Ehcache组件,轻量级缓存管理.docx

    Hibernate三级缓存机制简介: 一级缓存 :基于Session级别分配一块缓存空间,缓存访问的对象信息。Session关闭后会自动清除缓存。 二级缓存 :是SessionFactory对象缓存,可以被创建出的多个 Session 对象共享,二...

    Ehcache Java 缓存框架 v3.6.1

    EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认的... 具有缓存和缓存管理器的侦听接口8. 支持多缓存管理器实例,以及一个实例的多个缓存区域9. 提供Hibernate的缓存实现10. 等等

Global site tag (gtag.js) - Google Analytics