JPA/EclipseLink がエンティティ オブジェクトを L2 共有キャッシュにキャッシュしていないという問題がありました。リクエストを繰り返すと、SQL ステートメントが Derby にヒットするためです。これをデバッグしたところ、結局のところキャッシュが機能していることがわかりました。実際に起こっていたのは、存在しない (null を返す) エンティティに対する entityManager.find 要求だけがキャッシュされていなかったことです (キャッシュ内で管理および保持するオブジェクトがありません)。私が想像するケース)。これらのリクエストは、毎回データベースに到達するものでした。
以前に要求されたキーが存在しないという事実をシステム(EclipseLink?)に「キャッシュ」させて、データベースにアクセスせずにnullを返す方法はありますか?
Glassfish バージョン 3.1.2.1 を使用しています。