-2

DBからクエリを実行するページにデータテーブルがあります。実行時間が遅すぎます。ページのレンダリングに時間がかかりすぎます。それをスピードアップする方法は?ストアド プロシージャは、望ましいソリューションではありません。

<p:dataTable var="abc" value="#{abc.getValues()}">...

getValues(){
return ...createQuery(query);
}
4

1 に答える 1

2

JSF によってトリガーされる getter メソッドで DB クエリ (または負荷の高い処理) を実行することはお勧めできません。メソッドにログ ステートメントを配置するgetValuesと、おそらく複数回呼び出されていることがわかります。そのため、ゲッターは単なるゲッターであり、データはプリロードする必要があります。

Primefaces を使用しているようです。まさにそれを行うための優れた機能をもたらします - LazyDataModel. 対応するショーケースをご覧ください。Primefaces 3.4 以降では、dataTableを のキャッシング フィールドにバインドできますLazyDataModel

于 2012-11-29T11:30:16.810 に答える