执行CriteriaQuery太慢了

时间:2012-11-29 10:49:35

标签: performance jsf jpa

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

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

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

1 个答案:

答案 0 :(得分:2)

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

我看到你正在使用Primefaces。它带来了一个很好的工具 - LazyDataModel。看看the according showcase。从Primefaces 3.4开始,您可以将dataTable绑定到LazyDataModel的缓存字段。