Zohan
  • 首页
  • Java
  • JavaScript
  • Nginx
  • About
  1. 首页
  2. zohan
  3. 详细信息
Hibernate 清除session中的缓存对象,使用evict方法:zohan 发布于:2016年12月31日 阅读次数:3829
Hibernate 清除session中的缓存对象,使用evict方法

由于业务的需要我们经常会使用hql单独更新某个对象的字段而不是使用update更新整个对象的所有字段,如果这时候再加载对象的时候由于有缓存加载的数据还没有更新成最新的状态,我们需要手动把对象从缓存中清除一下再加载。

hibernate有两层缓存一个session级的是第一层级缓存,这个一层的需要使用session.evict (object);清楚缓存。

session的get和load的区别除了对象不存在load报错外,他们的区别还在缓存机制上,get直接越过第二层缓存,load从先从缓存中获取,因此即使是使用get方法为了方式session级别的缓存得调用session.evict (object);get返回的对象是原始的实体对象,load返回的对象是代理对象。

在hibernate的session中还提供了clear,clear方法是清除session中所有的缓存对象。


  • java
  • Hibernate
本文由 zohan 创作,采用 CC BY 3.0 CN协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处,本文地址:/blog/12.html
打赏
支付宝打赏
微信打赏
Copyright © 2013-2025 zohan.cc 版权所有 .京ICP备15012738号-4
京公网安备11010802015888