Seam Search duplicates query
vata2999 Jul 25, 2015 1:33 AMHi,
I created a list page using seam-gen with a simple inputText search as folllow.
CustomersList.xhtml
<h:form id="customersSearch" styleClass="edit"> <s:decorate template="layout/display.xhtml"> <ui:define name="label">Cname</ui:define> <h:inputText id="cname" value="#{customersList.customers.cname}"/> </s:decorate> <h:commandButton id="search" value="Search" action="/CustomersList.xhtml"/> </h:form> <h:form> // this prevents running query twice <rich:dataTable id="customersList" var="_customers" value="#{customersList.resultList}" rendered="#{not empty customersList.resultList}"> <h:column> <f:facet name="header"> Customer Name </f:facet> <h:outputText value="#{_customers.cname}"/> </h:column> <rich:column styleClass="action"> <f:facet name="header">Action</f:facet> <s:link view="/CustomersEdit.xhtml" value="Edit" propagation="none" id="customersEdit" rendered="#{empty from}"> <f:param name="customersId" value="#{_customers.id}"/> </s:link> </rich:column> </rich:dataTable> </h:form> //Paging and the rest
the problem is when I hit search button I can see in jboss log file that query runs twice.
select customers0_.id as id1_, customers0_.cname as cname1_ from public.customers customers0_ where lower(customers0_.cname) like lower((?||'%')) limit ? 09:49:45,882 INFO [STDOUT] Hibernate: select customers0_.id as id1_, customers0_.cname as cname1_ from public.customers customers0_ where lower(customers0_.cname) like lower((?||'%')) limit ?
but after I put rich:dataTable in h:form the query runs once is this because of jsf or what ?
I've used Seam 2.2 and 2.3/ Jboss 4.2/7 + richfaces 3.3.1GA.
PS : customersList seam component is exactly what seam-gen generates