首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Spring清除所有Hibernate缓存(ehcache)?

如何使用Spring清除所有Hibernate缓存(ehcache)?
EN

Stack Overflow用户
提问于 2010-03-17 17:31:12
回答 6查看 57K关注 0票数 25

我使用二级缓存和查询缓存。我可以知道如何以编程方式清除所有缓存吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-03-17 17:33:53

要清除会话缓存,请使用session.clear()

要清除二级缓存,请使用this code snippet

票数 17
EN

Stack Overflow用户

发布于 2010-03-18 04:10:16

如果您插入Terracotta,您还可以运行Terracotta Dev控制台,该控制台可以检查有关缓存的统计信息,打开和关闭缓存,并从用户界面中清除缓存内容。

此功能也可从JMX bean中获得。

票数 3
EN

Stack Overflow用户

发布于 2019-08-31 04:04:29

@Dino的答案对我来说几乎是有效的,但我从sessionFactory.getCurrentSession()得到了一个错误(没有配置currentSessionContext!)。我发现这对我有效:

代码语言:javascript
复制
    // Use @Autowired EntityManager em
    em.getEntityManagerFactory().getCache().evictAll();

    // All of the following require org.hibernate imports
    Session session = em.unwrap(Session.class);

    if (session != null) {
        session.clear(); // internal cache clear
    }

    SessionFactory sessionFactory = em.getEntityManagerFactory().unwrap(SessionFactory.class);

    Cache cache = sessionFactory.getCache();

    if (cache != null) {
        cache.evictAllRegions(); // Evict data from all query regions.
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2461063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档