1

アドホック キャッシュを有効にしていますが、カスタム クエリ実行プログラムを使用してデータを取得しています。jasperserver の場合、1 つのデータソースを使用しているように見えますが、以前とは異なる可能性があります。

jasperserver (4.7)0 のマルチテナンシー設定があります。

これには、すべてのテナントとユーザーで同じであるいくつかのアドホック ビューがあります。レポートが適切なデータベースなどで実行されるようにするカスタムクエリ実行プログラムがあります。

しかし、アドホック キャッシュをオンにすると、特定のアドホック ビューの結果がキャッシュされます。他のユーザーが (キャッシュから) 間違ったデータを見るのを防ぐために、tenantId と UserId をアドホック キャッシュ キーに追加するか、カスタム クエリ実行プログラム内からそのパラメーターを挿入します。

これが可能かどうか誰にもわかりますか?

ごきげんよう、ピーター

4

1 に答える 1

0

1 つの方法は、DefaultCacheKeyInterceptor の独自のバージョンを作成し、User オブジェクトを追加することです (レポートに何も指定されていない場合でも)。

次に、applicationContext-datarator.xml を編集し、keyInterceptor Bean 定義のクラス エントリを独自のクラスに変更します。

于 2012-08-21T16:19:57.033 に答える