我正在使用OpenJPA。如果我想使用executeUpdate()方法进行批量删除/更新,JPA缓存是否会更新?或者这会绕过JPA缓存吗?当我说“缓存”时,我说的是L1和L2缓存。查询类型是否重要(本机与JPQL)?谢谢。
答案 0 :(得分:1)
持久化上下文与结果不同步 批量更新或删除。
执行批量更新或删除操作时应该小心 因为它们可能导致数据库和数据库之间的不一致 活动持久性上下文中的实体。一般来说,批量 更新和删除操作应该只在一个内执行 在新的持久化上下文中或在开头的事务中 事务(在访问实体之前,状态可能是 受此类行动的影响)。
因此,由于OpenJPA不同步L1缓存,我不明白它为什么(以及如何)同步L2缓存。他可以冲洗它,但我怀疑它。无论如何,它很容易测试。