PrimeFaces CRUD按钮需要时间才能显示

时间:2015-06-15 09:30:30

标签: performance jsf jpa netbeans primefaces

我目前正面临性能问题,我希望得到您的支持。

这是我的配置:

  
      
  • 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")})

有人会知道造成这种缓慢的原因吗?在那种情况下,你可以帮我纠正我的错误吗?

0 个答案:

没有答案