【问题标题】:what is the impact of a jdbc query on hibernate second level cache? Can I trigger the cache refresh for a specific cache regionjdbc 查询对休眠二级缓存有什么影响?我可以触发特定缓存区域的缓存刷新吗
【发布时间】:2017-05-18 13:16:57
【问题描述】:

我有一个更新表的 jdbc 更新查询。并且在休眠中为同一张表维护实体缓存。我需要告诉 hibernate 刷新 jdbc 查询更新的实体的缓存区域。

【问题讨论】:

标签: java hibernate caching jdbc second-level-cache


【解决方案1】:

你在寻找

sessionFactory.getCache().evictEntityRegion(MyEntity.class)

这会从缓存中删除过时的条目。但是,如果您在 JDBC 更新之前这样做,在此失效和 JDBC 更新之间的窗口中,缓存可以通过并发读取再次填充,因此如果您的应用程序没有停止所有 DB 访问,您最终可能会得到一些陈旧的条目.

更新后的另一个区域驱逐可以解决它,但在 JDBC 查询和区域驱逐之间,您很容易再次出现缓存中的不一致数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2015-10-23
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    相关资源
    最近更新 更多