0

1,00,000と仮定すると、大きな結果が得られるクエリがあります。これらすべてのレコードをUIのグリッドに表示する必要があるため、

TypedQuery<Object> typedQuery =  entityManager.createQuery(cq); 
   typedQuery.setFirstResult(0);
   typedQuery.setMaxResults(1000);
List<Object> resultList = typedQuery.getResultList();

このクエリを実行すると、UIに1000レコードしか表示できません。次の結果セットをフェッチしていませんが、そのクエリが返すものはすべてすべてのレコードを表示する必要があります。これを行うにはどうすればよいですか。私にとって非常に緊急です。JPA基準APIを使用しています。

4

2 に答える 2

0

次の結果セットをどのように取得しようとしていますか?

投稿に表示されているクエリをそのまま使用すると、最初の1000レコードが常に取得されます。これは、それが求めているものだからです。

setFirstResult結果リストが空になるまで、0、1000、2000のように設定して、このクエリを繰り返し呼び出す必要があります。

于 2012-12-24T07:12:38.513 に答える
0

最初の 1000 件の結果だけでなく、すべてが必要な場合、なぜsetFirstResult()andを呼び出すのsetMaxResults()でしょうか? それらを削除すると、クエリはすべてを取得します。

TypedQuery<Object> typedQuery = entityManager.createQuery(cq); 
List<Object> resultList = typedQuery.getResultList();
于 2012-12-22T09:06:15.937 に答える