最近使用了hibernate来做数据的查询,删除等功能,发现每次添加数据后,每次刷新数据显示页面出现的结果都不同,刚添加的数据有时出现有时又不出现,做删除操作也是这样的情况,重启服务器后就没事,我想可能是hibernate的缓存问题吧,添加删除操作我都做了session.flush(),操作完session.close()。我对hibernate还不是很了解,请教高手解答一下,谢谢啦>__<

解决方案 »

  1.   

    <property name="hibernate.cache.use_send_level_cache">false<property>  
      关闭二级缓存在hibernate的配置文件里添加 看看
      

  2.   

    Hibernate的缓存分为两个级别: 
    一级缓存:指的是Session的缓存,所有使用同一个Session通过get或load查询的数据,都会保存在缓存中,下次再查询时,先从缓存中查找,如果找到,则不会再查询数据库,当Session关闭时,自动销毁。一般开发中不会使用,因为Session需要关闭。 二级缓存:保存在SessionFactory中,因此可以多个Session共同使用,二级缓存需要第三方的支持。可以使用oscache、ehcache之类缓存支持。默认Hibernate中加入的为ehcache缓存,这些缓存数据在一定时间后或SessionFactory销毁时自动销毁。
      

  3.   

    你好,这个方法没用哦,还是一样哦,而且您那个写法拼错单词了,呵呵
    <property name="hibernate.cache.use_second_level_cache">false</property> 
      

  4.   

    1.hibernate的缓存:就是一级缓存和二级缓存,对应session和sessionFactory,清楚干净了
    2.还有就是你应用程序自己有没有缓存。或者浏览器缓存这些。你可以看看删除后,有可能根本就没有访问后台也不一定
      

  5.   

    我也遇到一模一样的问题,正在找方案ing.....
    楼主解决了没?解决了指导俺一下噢。。