【问题标题】:How to modify entity manager's query cache?如何修改实体管理器的查询缓存?
【发布时间】:2019-08-24 08:17:29
【问题描述】:

在我的情况下,清除整个查询缓存非常昂贵,所以我想只清除特定的查询缓存。

假设我执行了以下 hql 查询:

SELECT FROM Car c WHERE c.id = 22

下一次,我想强制休眠从数据库中获取结果,而不是获取查询缓存中的内容。

观察:关闭查询缓存或清除整个缓存都不是有效选项。我不能在性能上妥协。

【问题讨论】:

    标签: java hibernate jpa caching


    【解决方案1】:

    使用hibernateQuery.setCacheMode(CacheMode.REFRESH) 禁用查询缓存。

    程序化失效:

    创建查询时设置区域名称hibernateQuery.setCacheRegion("car22"),然后使其无效session.getSessionFactory().getCache().evictQueryRegion("car22");

    【讨论】:

      猜你喜欢
      • 2017-08-22
      • 2013-02-11
      • 2014-09-13
      • 2011-11-23
      • 1970-01-01
      • 2014-12-02
      • 2014-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多