2011-01-04 9 views
1

私は、JBoss Seam、RichFaces、およびHibernate/JPAに基づいたアプリケーションを持っています。私はさまざまな基準に基づいてデータを取得するために使用されるDAOクラスと2つのビジネス層クラスを作成しました。 (最近のフェッチ、すべてのブラウズなど)これらの結果を返してユーザーに表示して、ユーザーがページを改ページできるようにします。しかし、返されるオブジェクトはかなり大きくなる可能性があり(オブジェクトの数が多い)、<rich:dataList /><rich:datascroller />のようなものを使用しないことをお勧めします。これは、1つの大きなクエリですべてのオブジェクトを取得し、 。Seamのサーバーサイドページネーションパターン?

データセットのサーバーサイドページ付けを実行するための一般的に受け入れられているパターンはありますか?これにより、新たなサブセットを検索し、「次へ」と「前の」ボタンを使用して、データセットを通じて

  • スクロールをカウント開始インデックスを使用して、私のデータのサブセットを取得

    • :私はのための戦略を探しています更新開始インデックスとカウント

    を使用したデータはあなたのいずれかが、私は<rich:dataList /><rich:datascroller />を使用しますが、まだ一部のクエリを使用して、サーバー側のページ付けを実行できるようになり、カスタムのDataModelオブジェクトを見たことがありますか?このようなシナリオを処理するための方法論を知ることは非常に興味があります。

  • 答えて

    3

    Seam Application Frameworkには、サーバー側のページ付けが組み込まれています。ちょうどEntityQueryオブジェクトを見てください。

    あなたはthis blog postを見て、簡単にそれらのクラスを拡張し、あなたはどこにでもこれらのクラスを拡張開始する前に、しかしgetResultList()

    を使用した場合、基本的自由のためのページ付けを得ることができます。

    +0

    しかし、私はすでにDAOクラスを使ってデータを取得しています。私の質問は、EntityQueryを伴わないサーバー側のページネーションを行うための確立された、または一般的に受け入れられているパターンがあるかどうかです。 – Shadowman

    +0

    はい、存在し、EntityQueryオブジェクトに実装されています。なぜ彼らはそれをやったのソースコードを見て、同じことを実装するのはなぜですか?基本的には、次のページを言うときにminとmaxのパラメータを渡し、 'query.firstResult(min).maxResult(max)'に設定します。 –