我想以分页方式向jasper提供数据以避免OutOfMemory错误。我知道Jasper中有Virtualizer概念。但据我所知,Virtualizers只在填写报表时才有用,这意味着我向Jasper提供完整的10,000个对象,然后使用虚拟器填充数据并写入文件以避免OOM。 我感兴趣的是我是否可以一次提供查询1000条记录并将其提供给Jasper并将其填入循环(10次,10 * 100)。
在我们的例子中,我们不直接在报表中使用查询,因为我们需要在导出之前装饰对象。
答案 0 :(得分:2)
您可以创建一个扩展JRDataSource
的类来处理您想要的逻辑。基本上你会自己分页。
如果要查询数据库以获取数据,则可以使用分页查询一次获取1000行数据。然后装饰数据。在调用第1000个项目后调用next时,则再次对下一个1000进行查询。
据我所知,作为图书馆的一部分,没有现成的解决方案。