0

running a simple primefaces p:datatable is executing the query twice. a h:datatable only once.

Any idea why?

<h:dataTable id="table1" value="#{employees.records}" var="record">
   <h:column>
    <f:facet name="header">
     <h:outputText value="ID" />
    </f:facet>
    <h:outputText value="#{record.id}" />
   </h:column>
   <h:column>
    <f:facet name="header">
     <h:outputText value="First Name" />
    </f:facet>
    <h:outputText value="#{record.firstName}" />
   </h:column>
   <h:column>
    <f:facet name="header">
     <h:outputText value="Last Name" />
    </f:facet>
    <h:outputText value="#{record.lastName}" />
   </h:column>
   <h:column>
    <f:facet name="header">
     <h:outputText value="Company Name" />
    </f:facet>
    <h:outputText value="#{record.company.name}" />
   </h:column>
  </h:dataTable>

is running the query once. output on the console:

Hibernate: select employee0_.ID as ID19_, employee0_.CompanyId as CompanyId19_, employee0_.EMAIL as EMAIL19_, employee0_.FIRSTNAME as FIRSTNAME19_, employee0_.LASTNAME as LASTNAME19_, employee0_.PASSWORD as PASSWORD19_, employee0_.PHONE_INTERN as PHONE6_19_, employee0_.USERNAME as USERNAME19_,  concat(employee0_.FIRSTNAME, ' ', employee0_.LASTNAME)  as formula0_ from EMPLOYEE employee0_

Running a simple primefaces DataTable runs the query twice:

  <p:dataTable id="employees" var="employee"
   value="#{employees.records}">

   <p:column headerText="Id">
    <h:outputText value=" #{employee.id}" />
   </p:column>

   <p:column headerText="First Name">
    <h:outputText value=" #{employee.firstName}" />
   </p:column>

   <p:column headerText="Last Name">
    <h:outputText value="#{employee.lastName}" />
   </p:column>

   <p:column headerText="Company Name">
    <h:outputText value=" #{employee.company.name}" />
   </p:column>

  </p:dataTable>

console:

Hibernate: select employee0_.ID as ID19_, employee0_.CompanyId as CompanyId19_, employee0_.EMAIL as EMAIL19_, employee0_.FIRSTNAME as FIRSTNAME19_, employee0_.LASTNAME as LASTNAME19_, employee0_.PASSWORD as PASSWORD19_, employee0_.PHONE_INTERN as PHONE6_19_, employee0_.USERNAME as USERNAME19_,  concat(employee0_.FIRSTNAME, ' ', employee0_.LASTNAME)  as formula0_ from EMPLOYEE employee0_
Hibernate: select employee0_.ID as ID19_, employee0_.CompanyId as CompanyId19_, employee0_.EMAIL as EMAIL19_, employee0_.FIRSTNAME as FIRSTNAME19_, employee0_.LASTNAME as LASTNAME19_, employee0_.PASSWORD as PASSWORD19_, employee0_.PHONE_INTERN as PHONE6_19_, employee0_.USERNAME as USERNAME19_,  concat(employee0_.FIRSTNAME, ' ', employee0_.LASTNAME)  as formula0_ from EMPLOYEE employee0_

How come?

Tomcat 7, jsf 2.2, PF 5.3

Thanks, Duesentrieb

Adding more code:

<h:form id="frmDataTable">
   <p:dataTable id="employees" var="employee"
    value="#{employees.records}">

    <p:column headerText="Id">
     <h:outputText value=" #{employee.id}" />
    </p:column>

    <p:column headerText="First Name">
     <h:outputText value=" #{employee.firstName}" />
    </p:column>

    <p:column headerText="Last Name">
     <h:outputText value="#{employee.lastName}" />
    </p:column>

    <!-- p:column headerText="Company Name">
     <h:outputText value=" #{employee.company.name}" />
    </p:column-->

    <p:column style="width:32px;text-align: center">
     <p:commandButton icon="ui-icon-search" title="View">
    
     </p:commandButton>
    </p:column>

   </p:dataTable>
  </h:form>


  <h:form id="dlgDataTable">

   <p:dialog header="Employee Info" id="dlgEmployee"
    widgetVar="dlgEmployee" modal="false" showEffect="fade"
    hideEffect="fade" resizable="false">

    <p:outputPanel id="employeeDetail" style="text-align:center;">

     <p:panelGrid columns="2" columnClasses="label,value">
      <f:facet name="header">Employee</f:facet>

      <h:outputText value="Id:" />
    </p:outputPanel>

   </p:dialog>

  </h:form>

I extended now the p:datatable with p:dialog. I do not even update a record or what ever and every time I click on the button 12 queries are executed.

This can't be right - what am I doing wrong?

Thanks!

0 Answers0