hibernate中session的缓存怎么清除

hibernate中session的缓存怎么清除,第1张

1. 清空缓存

当调用session.evict(customer)或者session.clear()或者session.close()方法时,Session的缓存被清空。

2. 清理缓存

Session具有一个缓存,位于缓存中的对象处于持久化状态,它和数据库中的相关记录对应,Session能够在某些时间点,按照缓存中持久化对象的属性变化来同步更新数据库,这一过程被称为清理缓存。

在默认情况下,Session会在下面的时间点清理缓存。

当应用程序调用org.hibernate.Transaction的commit()方法的时候,commit()方法先清理缓存,然后在向数据库提交事务;

当应用程序调用Session的list()或者iterate()时(【注】get()和load()方法不行),如果缓存中持久化对象的属性发生了变化,就会先清理缓存,以保证查询结果能能反映持久化对象的最新状态;

当应用程序显式调用Session的flush()方法的时候。

session是否清空和你浏览器回退 *** 作之间没有必然关系,session是在当前回话中用来保存一些共享信息的,网页知否支持回退那个功能是另一回事。回退一般是用的浏览器缓存数据,如果你在回退的页面中做了登陆验证那么这个时候对页面进行 *** 作会可能重新刷新。

还有一般不用session.Clear(),用Session["username"]=nul,Session不会只存放登陆信息,有时候为了页面间传值,可能会用到session,你这个时候在page_load中用session.Clear(),就会出问题的。

以使用httpsession.invalidate()清空session内的值。 例: public void doGet(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse) throws ServletException, IOException { HttpSession httpsession = httpse...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9938758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存