JPAプロバイダーとしてEclipseLinkを使用しています。クエリ オブジェクトで次のコードを使用すると:
myQuery.setHint("eclipselink.read-only", "true");
クエリは、元の EntityManager が使用している接続とは異なる接続で実行され、間違った結果を返します。
クエリを読み取り専用に設定すると、EclipseLink が別の接続で実行されるということは理にかなっていますか? (接続プーリングを使用しています)。
さらに、persistence.xml に以下を追加しました。
<shared-cache-mode>NONE</shared-cache-mode>
クロス セッション キャッシュを無効にします。