3

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 に答える