1

JPAプロバイダーとしてEclipseLinkを使用しています。クエリ オブジェクトで次のコードを使用すると:

myQuery.setHint("eclipselink.read-only", "true");

クエリは、元の EntityManager が使用している接続とは異なる接続で実行され、間違った結果を返します。
クエリを読み取り専用に設定すると、EclipseLink が別の接続で実行されるということは理にかなっていますか? (接続プーリングを使用しています)。
さらに、persistence.xml に以下を追加しました。

<shared-cache-mode>NONE</shared-cache-mode>

クロス セッション キャッシュを無効にします。

4

1 に答える 1

1

読み取り専用クエリは、読み取りがコミットされたデータのみを表示するためのものです。トランザクション データが必要な場合は、読み取り専用を使用しないでください。

排他的な接続を使用できる場合があります (持続性ユニット、または持続性コンテキスト プロパティ)。

"eclipselink.jdbc.exclusive-connection.mode"="常時"

于 2013-02-25T16:45:18.063 に答える