0

有一些新手问题。在 JPA 中,如果缓存被禁用,那么调用EntityManager.refresh()不再有任何用处总是真的吗?

我正在维护这个应用程序,其中缓存被禁用,但它仍然调用刷新。我正在考虑删除刷新调用,因为我认为它不需要并且不必要地添加到处理中,但由于它不是我的原始代码,所以有一些疑问是否有任何影响。

感谢您的评论。

4

1 回答 1

4

您应该注意的一件事是涉及多层缓存(我想您指的是二级缓存)。实体管理器也是一级缓存——其范围要么绑定到事务,要么绑定到扩展持久性上下文的生命周期。

refresh()方法用于使用其他实体管理器对数据库所做的更改来更新现有和托管(当前 EM 的持久性上下文的一部分)实体。因此,是否存在二级缓存与 refresh() 调用的意义和无意义无关。

于 2013-03-14T08:42:40.027 回答