`
alex09
  • 浏览: 975082 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Hibernate中清除缓存对象方法

阅读更多
    我们知道,如果一味的让新的数据放到缓存中去,那我们计算机肯定会内存崩溃。所以进行必要的缓存清除还是很有必要的。
下面我们分析一下几种方法:
1 clear()方法
  我们可以在session-factory标签下创建property标签,name属性为hibernate.jdbc.batch_size,值为我们想要设定的数字,假如为100,下一步当我们执行操作flush()发送SQL语句时候调用session.clear()方法,就可以实现清除缓存的效果了。
for(int i=0;i<1000;i++){
   Order order = new Order();
   order.setId();
   session.save(order);
   if(i%100==0){
      session.flush();
      session.clear();
   }
}


2 evict()方法
  该方法于上一个方法不同,它只能用于处理单个对象的清除工作。
for(int i=0;i<1000;i++){
   Order order = new Order();
   order.setId();
   session.save(order);
   session.evict();//清除session缓存
   SessionFactory.evict();//清除二级缓存
}

分享到:
评论

相关推荐

    hibernate一级缓存

    2. **缓存与数据库的同步**:当我们调用`Session.flush()`方法时,Hibernate会将一级缓存中所有更改过的对象同步到数据库,确保数据的一致性。而在事务提交(`Transaction.commit()`)时,Hibernate会自动执行flush...

    hibernate一级缓存、二级缓存和查询缓存

    - **生命周期与Session一致**:一级缓存的生命周期跟随Session,当Session关闭时,一级缓存中的所有对象将会被清除。 - **自动管理**:Hibernate会自动管理一级缓存,无需开发者额外配置。 - **线程安全**:由于每个...

    hibernate二级缓存示例源码

    Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,在处理大量数据时,性能优化显得尤为重要,这就是二级缓存的作用。本文将深入探讨Hibernate二级缓存的基本概念、工作...

    hibernate二级缓存包

    Hibernate二级缓存是Java开发中使用Hibernate框架进行数据持久化时优化性能的一种重要技术。它在一级缓存(Session级别的缓存)的基础上,提供了一个全局的、跨会话的数据存储层,可以显著减少对数据库的访问,从而...

    hibernate二级缓存所需要的 jar包

    Hibernate的一级缓存是指Session级别的缓存,每个Session内部都有一个一级缓存,用于存储实体对象,当Session关闭时,一级缓存中的数据也会被清除。而二级缓存则是一个SessionFactory级别的缓存,它跨越多个Session...

    Hibernate二级缓存+分页功能

    Hibernate一级缓存是指Session级别的缓存,它是默认开启的,每个Session都会维护一个对象缓存,用来存放该Session加载的实体对象。一级缓存的生命周期与Session相同,当Session关闭时,一级缓存中的数据也会被清除。...

    day37 05-HIbernate二级缓存:一级缓存更新同步到二级缓存及二级缓存配置文件

    当对象在一级缓存中被修改并提交后,Hibernate会根据配置将这些变化同步到二级缓存中。这个过程包括了更新、删除和插入操作。值得注意的是,对于删除操作,Hibernate不仅会移除相应对象,还会清除可能存在的关联对象...

    Hibernate4二级缓存实例(源码)

    5. **缓存策略**:在Hibernate中,可以通过@Cacheable注解标记实体类,表示该类的对象可以被缓存。还可以使用@CacheRegion定义特定的缓存区域,以及@CacheConfig来全局配置缓存参数。 6. **性能优化**:利用二级...

    hibernate的一级缓存和二级缓存

    然而,一级缓存中对象不会自动过期,除非手动通过Session的evict()方法清除特定对象,或者通过clear()方法清空整个缓存。 二级缓存则是在SessionFactory级别,跨越多个Session,甚至整个应用进程或集群。这意味着,...

    Hibernate缓存,性能优化

    - 集合对象:实体对象中定义的集合属性,例如一对多、多对多等关联关系。 - 查询结果:执行HQL或Criteria查询语句的结果集。 一级缓存的主要优点是使用简单、开销小,能有效避免同一会话内对同一数据的重复查询,...

    Hibernate缓存技术研究

    它能够将应用程序中的对象模型映射到关系型数据库的表结构中,并提供了一系列方便的数据查询和获取方法,大大减少了开发人员编写SQL和处理JDBC的工作量。然而,由于对象模型和关系型数据库模型之间的映射会产生一定...

    hibernate缓存

    5. **手动清除缓存**:必要时可通过`evict`方法清除特定实体的缓存,或者使用`clear`方法清除整个一级缓存。 #### 七、总结 通过对Hibernate缓存机制的理解和合理配置,可以显著提升应用程序的性能表现,降低...

    Hibernate的缓存策略

    在Hibernate框架中,一级缓存和二级缓存各自承担着不同的角色,通过合理的设计和配置,可以充分发挥缓存的优势,显著提升系统的性能和用户体验。在实际项目中,开发者应根据具体需求灵活运用这两种缓存机制,以达到...

    Hibernate + EhCache 实现数据缓存的处理

    2. 使用`session.evict()`或`session.clear()`方法清除缓存。 3. 再次加载同一个实体对象,如果缓存有效,这次应该不会执行数据库查询,而是直接从缓存中获取数据。 通过上述配置和编程方式,Hibernate和EhCache...

    Hibernate二级缓存架包.rar

    一级缓存存储的对象在当前Session内有效,当Session关闭时,这些缓存对象也会被清除。 相比之下,二级缓存是SessionFactory级别的,它可以跨Session共享数据,提高了数据访问效率。二级缓存需要通过插件或者配置来...

    hibernate二级缓存使用范例

    一级缓存的生命周期与Session相同,当Session关闭时,一级缓存中的数据也会随之清除。由于一级缓存只存在于单个Session内,因此对于并发访问来说,它并不能提供跨线程或跨进程的数据共享。 二级缓存则是...

    Hibernate二级缓存

    4. 数据过期策略:一级缓存中的对象不会自动过期,除非被明确清除或Session关闭。 **二级缓存**: 1. 生命周期:二级缓存与SessionFactory关联,随SessionFactory创建而创建,销毁而销毁,寿命较长。 2. 存储机制:...

    Hibernate 使用缓存时,数据同步问题

    4. **清除缓存**:在必要的时候,可以显式地调用`Session.clear()`方法清除一级缓存,或者使用`SessionFactory.evict()`方法清除二级缓存中的特定实体,以确保下一次操作时能获取到最新的数据。 5. **配置缓存模式*...

    hibernate缓存机制

    当Session关闭时,缓存中的数据也会随之清除。由于第一级缓存存在于内存中,因此读写速度非常快,可以有效提高数据访问效率。 **第二级缓存**是SessionFactory级别的,它可以是内置的或外置的。内置缓存存储映射元...

Global site tag (gtag.js) - Google Analytics