将租户ID和用户ID添加到ad hoc缓存中

时间:2012-08-17 12:40:26

标签: jasperserver

我们启用了adhoc缓存,但我们使用自定义查询执行器来检索数据。对于jasperserver来说,看起来它使用的是一个数据源,而它之前可能是一个不同的数据源。

我们为jasperserver(4.7)0设置了多租户设置。

在这里,我们有一些对每个租户和用户都相同的特殊观点。我们有一个自定义查询执行程序,可以确保报告在正确的数据库等上运行。

但是当我们打开adhoc缓存时,它会缓存某个特殊视图的结果。为了防止其他用户(从缓存中)看到错误的数据,我们希望将tenantId和UserId添加到adhoc缓存键,或者可以在自定义查询执行器中插入该参数。

有人知道这是否可行?

问候, 彼得

1 个答案:

答案 0 :(得分:0)

一种方法是创建自己的DefaultCacheKeyInterceptor版本,并添加一个User对象(即使报表中没有指定)。

然后编辑applicationContext-datarator.xml,并将keyInterceptor bean定义的类条目更改为您自己的类。