0

JPAを使用したWebアプリケーションで、「通常のユーザー」と「管理者」の2人のユーザーがいる状況があります。admin ユーザーは、ユーザーの情報を読み取る権限を持ち、ユーザーはその情報を更新する権限を持ちます。どちらにもエンティティマネージャがあります。管理者がキャッシュからのみ更新された値を取得するように、JPA でこれらのマネージャーの永続化コンテキストを同期することは可能ですか? 助けてください。

4

2 に答える 2

0

これにはJPA ライフサイクル コールバックを使用できます(リンクは Hibernate へのリンクですが、JPA プロバイダーはこれをオフにする必要があります)。@PostPersistおよびアノテーションを使用する@PostUpdateと、エンティティが更新されたときに特定のアクティビティ (他のスレッドへの通知など) を実行できます。その後、それらのスレッドで新しいエンティティ マネージャーを作成し、影響を受けるエンティティを見つけて、表示を更新できます。

于 2013-06-06T17:30:56.193 に答える
0

二次キャッシュを設定する必要があります。l2 キャッシュは概念的に EntityManagerFactory に格納されるため、すべての EntityManager からアクセスできます。

http://docs.oracle.com/javaee/6/tutorial/doc/gkjio.htmlを参照してください。

于 2013-06-07T08:57:29.497 に答える