3

我想以分页方式向 jasper 提供数据以避免 OutOfMemory 错误。我知道 Jasper 中有 Virtualizer 概念。但据我所知,虚拟器仅在填充报告时才有用,这意味着我向 Jasper 提供了一套完整的比如说 10,000 个对象,然后它使用虚拟器来填充数据并写入文件以避免 OOM。我有兴趣知道的是我是否可以一次提供查询 1000 条记录并将其提供给 Jasper 并循环填充(10 次,10*100)。

在我们的例子中,我们不直接在报表中使用查询,因为我们需要在导出之前装饰对象。

4

1 回答 1

2

您可以创建一个扩展类JRDataSource来处理您想要的逻辑。基本上你会自己分页。

如果您正在查询数据库以获取数据,那么您可以使用分页查询一次获取 1000 行的数据。然后装饰数据。在调用第 1000 个项目后调用 next 时,您将再次查询下一个 1000。

据我所知,作为图书馆的一部分,没有现成的解决方案。

于 2013-10-22T17:25:32.707 回答