0

初心者の質問があります。JPAでは、キャッシュが無効になっている場合、への呼び出しEntityManager.refresh()はもはや役に立たないというのは常に本当ですか?

キャッシュが無効になっているこのアプリを維持していますが、それでも更新が呼び出されます。リフレッシュコールは必要ないと思うので削除しようと考えていますが、それは私のオリジナルのコードではないので、影響があるかどうかは疑問です.

コメントをお待ちしております。

4

1 に答える 1

4

注意すべきことの 1 つは、関連するキャッシュのレイヤーが複数あることです (2 番目のレベルのキャッシュについて言及していると思います)。エンティティ マネージャーは、第 1 レベルのキャッシュでもあります。そのスコープは、トランザクションまたは拡張永続コンテキストの有効期間にバインドされます。

このrefresh()メソッドは、既存の管理対象 (現在の EM の永続化コンテキストの一部) エンティティを、他のエンティティ マネージャによってデータベースに加えられた変更で更新するために使用されます。したがって、第 2 レベルのキャッシュが存在するかどうかは、refresh() 呼び出しの良し悪しとは関係ありません。

于 2013-03-14T08:42:40.027 に答える