执行本机更新查询后,在检索到的实体中仍然是旧值

时间:2013-04-03 21:00:29

标签: java jpa entity eclipselink nativequery

我正在使用本机查询来更新用@ElementCollection注释的HashMap中某个键的值。

执行查询后,将使用EntityManager.find(...)重新检查包含HashMap的完整实体。 问题是,检索到的实体中的HashMap仍然包含旧值。

如何使用更新的HashMap获取实体?是否需要刷新缓存?我正在使用Eclipse Link。

1 个答案:

答案 0 :(得分:2)

我假设您启用了缓存(默认设置)。因此,您需要调用refresh()来刷新对象。

否则您可以禁用共享缓存,但如果您在EntityManager的上下文中执行此操作,则仍需要刷新或清除持久性上下文以查看更改。

请参阅, http://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching#How_to_refresh_the_cache