1

で注釈が付けられた HashMap の特定のキーの値を更新するために、ネイティブ クエリを使用しています@ElementCollection

クエリが実行された後、HashMap を含む完全なエンティティが で取得されEntityManager.find(...)ます。問題は、取得したエンティティの HashMap にまだ古い値が含まれていることです。

更新された HashMap でエンティティを取得するにはどうすればよいですか? キャッシュを更新する必要がありますか? 私はEclipse Linkを使用しています。

4

1 に答える 1

2

キャッシュが有効になっていると仮定します(デフォルト)。そのため、refresh() を呼び出してオブジェクトを更新する必要があります。

それ以外の場合は、共有キャッシュを無効にすることができますが、EntityManager のコンテキストでそれを行う場合、変更を確認するには永続化コンテキストを更新またはクリアする必要があります。

http://wiki.eclipse.org/EclipseLink/Examples/JPA/Caching#How_to_refresh_the_cacheを参照して ください

于 2013-04-04T13:03:43.087 に答える