我们启用了adhoc缓存,但我们使用自定义查询执行器来检索数据。对于jasperserver来说,看起来它使用的是一个数据源,而它之前可能是一个不同的数据源。
我们为jasperserver(4.7)0设置了多租户设置。
在这里,我们有一些对每个租户和用户都相同的特殊观点。我们有一个自定义查询执行程序,可以确保报告在正确的数据库等上运行。
但是当我们打开adhoc缓存时,它会缓存某个特殊视图的结果。为了防止其他用户(从缓存中)看到错误的数据,我们希望将tenantId和UserId添加到adhoc缓存键,或者可以在自定义查询执行器中插入该参数。
有人知道这是否可行?
问候, 彼得
答案 0 :(得分:0)
一种方法是创建自己的DefaultCacheKeyInterceptor版本,并添加一个User对象(即使报表中没有指定)。
然后编辑applicationContext-datarator.xml,并将keyInterceptor bean定义的类条目更改为您自己的类。