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!