我在从数据库查询的页面上有数据表。执行时间太慢。页面渲染时间过长。如何加快速度?存储过程不是理想的解决方案。
<p:dataTable var="abc" value="#{abc.getValues()}">...
getValues(){
return ...createQuery(query);
}
我在从数据库查询的页面上有数据表。执行时间太慢。页面渲染时间过长。如何加快速度?存储过程不是理想的解决方案。
<p:dataTable var="abc" value="#{abc.getValues()}">...
getValues(){
return ...createQuery(query);
}
在由 JSF 触发的 getter 方法中执行 DB 查询(或任何繁重的处理)是一个坏主意。如果您在getValues
方法中放置一个日志语句,您可能会看到它被多次调用。因此,getter 应该只是 getter,并且应该预加载数据。
我看到你正在使用 Primefaces。它带来了一个很好的工具来做到这一点 - LazyDataModel
. 看看相应的陈列柜。从 Primefaces 3.4 开始,您可以将 绑定dataTable
到LazyDataModel
.