executeUpdate()对JPA缓存有什么影响?

时间:2012-03-04 03:19:21

标签: caching jpa jpa-2.0

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

1 个答案:

答案 0 :(得分:1)

The documentation说:

  

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

     

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

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