为什么我的关系表会抛出 OutOfMemoryError?

Why does my relational tables throw OutOfMemoryError?

我正在使用 iReport 构建 jaspersoft 报告,我正在使用 Fishbowl 作为我的 DBMS。

我构建了我的表,在 iReport 中显示我的表是相关的,但出于某种原因它会抛出错误并且不会 运行。它应该很简单。我正在输入邮政编码、日期范围或州名称,并输出产品名称、完成的总数量、邮政编码和州缩写。

当我将报告上传到 Fishbowl 时,它 运行s 但最终崩溃并显示内存不足的错误。我不认为这是问题所在,但这是导致报告无法正确 运行 的原因。也许这是我的加入?

这是我的 SQL

SELECT
 STATECONST."CODE" AS STATECONST_CODE,
 ADDRESS."STATEID" AS ADDRESS_STATEID,
 ADDRESS."ZIP" AS ADDRESS_ZIP,
 SOITEM."PRODUCTNUM" AS SOITEM_PRODUCTNUM,
 SOITEM."QTYFULFILLED" AS SOITEM_QTYFULFILLED
FROM
 "STATECONST" STATECONST INNER JOIN "ADDRESS" ADDRESS ON STATECONST."ID" =     ADDRESS."STATEID"
 INNER JOIN "ACCOUNT" ACCOUNT ON ADDRESS."ACCOUNTID" = ACCOUNT."ID"
 INNER JOIN "CUSTOMER" CUSTOMER ON ACCOUNT."ID" = CUSTOMER."ACCOUNTID"
 INNER JOIN "SO" SO ON CUSTOMER."ID" = SO."CUSTOMERID"
 INNER JOIN "SOITEM" SOITEM ON SO."ID" = SOITEM."SOID"

错误是:

java.lang.OutOfMemoryError : Java heap space

这里还有一些屏幕截图也可以提供帮助。

当内存不足时,一般操作是:

Java heap space out of memory

默认生成的jasper报告相关内存中的整个报告,可以使用JRVirtualizer, see example in sample reference

更改

示例(来自使用文件虚拟器的示例参考)

//Create the virtualizer after 2 pages filled save in tmp director
JRFileVirtualizer virtualizer = new JRFileVirtualizer(2, "tmp");

//Preparing parameters
Map parameters = new HashMap();
parameters.put(JRParameter.REPORT_VIRTUALIZER, virtualizer);