【问题标题】:What effect does executeUpdate() have on the JPA cache?executeUpdate() 对 JPA 缓存有什么影响?
【发布时间】:2012-03-22 01:29:00
【问题描述】:

我正在使用 OpenJPA。如果我想使用 executeUpdate() 方法进行批量删除/更新,JPA 缓存会更新吗?或者这会绕过 JPA 缓存吗?当我说“缓存”时,我指的是 L1 和 L2 缓存。查询的类型是否重要(本机与 JPQL)?谢谢。

【问题讨论】:

    标签: caching jpa jpa-2.0


    【解决方案1】:

    The documentation 说:

    持久化上下文与结果不同步 批量更新或删除。

    执行批量更新或删除操作时应谨慎 因为它们可能会导致数据库和数据库之间的不一致 活动持久性上下文中的实体。一般来说,散装 更新和删除操作只能在一个 事务在新的持久性上下文中或在开始时 事务(在访问实体之前,其状态可能是 受到此类操作的影响)。

    所以,由于 OpenJPA 不同步 L1 缓存,我不明白它为什么会(以及它如何)同步 L2 缓存。他可以冲洗它,但我对此表示怀疑。无论如何,它很容易测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2013-01-07
      • 2012-08-06
      • 2014-10-05
      • 1970-01-01
      相关资源
      最近更新 更多