我正在使用本机查询来更新带有注释的 HashMap 中某个键的值@ElementCollection
。
执行查询后,将使用 检索包含 HashMap 的完整实体EntityManager.find(...)
。问题是,检索到的实体中的 HashMap 仍然包含旧值。
如何使用更新的 HashMap 获取实体?是否需要刷新缓存?我正在使用 Eclipse 链接。
我正在使用本机查询来更新带有注释的 HashMap 中某个键的值@ElementCollection
。
执行查询后,将使用 检索包含 HashMap 的完整实体EntityManager.find(...)
。问题是,检索到的实体中的 HashMap 仍然包含旧值。
如何使用更新的 HashMap 获取实体?是否需要刷新缓存?我正在使用 Eclipse 链接。
我假设您启用了缓存(默认)。所以你需要调用 refresh() 来刷新对象。
否则,您可以禁用共享缓存,但如果您在 EntityManager 的上下文中执行此操作,则仍然需要刷新或清除持久性上下文才能看到更改。
见, http://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching#How_to_refresh_the_cache