我目前正面临性能问题,我希望得到您的支持。
这是我的配置:
- NetBeans IDE 8.0.2(Build 201411181905)
- Primefaces 5.2
- nbpfcrudgen-0.30.1-8.0.2_patch1-impl(我用于我的应用程序的CRUD生成器)
- Glassfish 4.0 PostgreSQL 9.2
我使用Netbeans CRUD Generator(http://sourceforge.net/projects/nbpfcrudgen/)
创建了一个crud应用程序下面的代码显示了表格中的Action列表。在页面底部有一个“查看”按钮,只有在表格中选择一行时才会激活该按钮。
开箱即用它完全正常:当我选择一行时,“视图”按钮会在2sc中激活。
<h:form id="ActionListForm">
<p:panel header="#{bundle.ListActionTitle}">
<p:dataTable id="datalist"
value="#{actionController.items}"
var="item"
rowKey="#{item.idaction}"
paginator="true"
rows="10"
rowsPerPageTemplate="10,20,30,40,50"
selectionMode="single"
selection="#{actionController.selected}">
<p:ajax event="rowSelect" update=":ActionListForm:viewButton" listener="#{actionController.resetParents}"/>
<p:ajax event="rowUnselect" update=":ActionListForm:viewButton" listener="#{actionController.resetParents}"/>
<p:ajax event="contextMenu" update=":ActionListForm:viewButton" listener="#{actionController.resetParents}"/>
<p:ajax event="rowDblselect" onsuccess="document.getElementById('ActionListForm:viewButton').click();"/>
<p:column sortBy="#{item.idaction}" filterBy="#{item.idaction}">
<f:facet name="header">
<h:outputText value="#{bundle.ListActionTitle_idaction}"/>
</f:facet>
<h:outputText value="#{item.idaction}"/>
</p:column>
<p:column sortBy="#{item.actionlink}" filterBy="#{item.actionlink}">
<f:facet name="header">
<h:outputText value="#{bundle.ListActionTitle_actionlink}"/>
</f:facet>
<h:outputText value="#{item.actionlink}"/>
</p:column>
<p:column sortBy="#{item.identity.name}" filterBy="#{item.identity.name}">
<f:facet name="header">
<h:outputText value="#{bundle.ListActionTitle_identity}"/>
</f:facet>
<h:outputText value="#{item.identity.name}"/>
</p:column>
</p:dataTable>
<p:commandButton id="viewButton" style="visibility: hidden;" icon="ui-icon-search" value="#{bundle.View}" update=":ActionViewForm" oncomplete="PF('ActionViewDialog').show()" disabled="#{empty actionController.selected}"/>
</h:form>
当我试图限制表格中显示的记录时,问题开始了,我的修改
<h:form id="ActionListForm">
<p:panel header="#{bundle.ListActionTitle}">
<p:dataTable id="datalist"
Value = "#budgetController.getAllActionByEntity('bob’}"
在此修改之后,当我选择一行时,“查看”按钮至少需要激活10sc。在ActionController类中的getAllActionByEntity方法下面
public List<Action> getAllActionByEntity(String iduserparam) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("propensionPU");
EntityManager em = emf.createEntityManager();
try {
Entity identity = new Entity (iduserparam);
allActionByEntity = em.createNamedQuery("Action.findAllByEntity").setParameter("identity", identity).getResultList();
}
catch (NoResultException e) {System.out.println (e);}
return allActionByEntity;
}
Action.Java的摘录以及上面引用的查询:
@NamedQuery(name = "Action.findAllByEntity", query = "SELECT a FROM Action a WHERE a.identity = :identity")})
有人会知道造成这种缓慢的原因吗?在那种情况下,你可以帮我纠正我的错误吗?