我正在使用 native 查询来更新用 @ElementCollection
注释的 HashMap 中某个键的值。
执行查询后,将使用 EntityManager.find(...)
检索包含 HashMap 的完整实体。
问题是,检索到的实体中的 HashMap 仍然包含旧值。
如何获取更新后的 HashMap 的实体?是否需要刷新缓存?我正在使用 Eclipse Link。
最佳答案
我假设您已启用缓存(默认)。所以你需要调用refresh()来刷新对象。
否则,您可以禁用共享缓存,但如果您在 EntityManager 的上下文中执行此操作,则仍然需要刷新或清除持久性上下文才能看到更改。
看, http://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching#How_to_refresh_the_cache
关于java - 执行 native 更新查询后,检索到的实体中仍然存在旧值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15798030/