-2

我在从数据库查询的页面上有数据表。执行时间太慢。页面渲染时间过长。如何加快速度?存储过程不是理想的解决方案。

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

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

1 回答 1

2

在由 JSF 触发的 getter 方法中执行 DB 查询(或任何繁重的处理)是一个坏主意。如果您在getValues方法中放置一个日志语句,您可能会看到它被多次调用。因此,getter 应该只是 getter,并且应该预加载数据。

我看到你正在使用 Primefaces。它带来了一个很好的工具来做到这一点 - LazyDataModel. 看看相应的陈列柜。从 Primefaces 3.4 开始,您可以将 绑定dataTableLazyDataModel.

于 2012-11-29T11:30:16.810 回答