Has anyone gotten EntityQuery to work with AJAX pagination? Right now the only way I can get it to work is by putting the EntityQuery component in CONVERSATION scope.
When it isn't in CONVERSATION scope it will not work properly. I can page forward through the list and back through list. But after I leave the first page I can't ever go back to it using repeated clicks of "Previous Page" or clicking "First Page" Also, I can not access the last page of the list though repeated clicking of "Next Page" or clicking "Last Page" In both the First Page and Last Page not displaying, I can tell from the debug statements that the query is getting executed with the correct firstResult and returning the correct data. But the page does not update. I don't see why I'd have to put the EntityQuery into CONVERSATION scope non working example components.xml ------------------- | <framework:entity-query name="testCodeListQuery" ejbql="select c from TestCode c" max-results="5"/> | view.xhtml ------------- | <div id="register"><h:form id="testCodes" | styleClass="register"> | <h:dataTable id="codeList" var="code" value="#{testCodeList.resultList}"> | <h:column> | <f:facet name="header"> | <h:outputText value="Code" /> | </f:facet> | <h:outputText value="#{code.name}"/> | </h:column> | <h:column> | <f:facet name="header"> | <h:outputText value="Desc" /> | </f:facet> | <h:outputText value="#{code.desc}"/> | </h:column> | </h:dataTable> | <a:commandButton value="First Page" reRender="testCodes" disabled="#{!testCodeList.previousExists}"> | <a:actionparam name="firstResult" value="0"/> | </a:commandButton> | <a:commandButton value="Previous Page" reRender="testCodes" disabled="#{!testCodeList.previousExists}"> | <a:actionparam name="firstResult" value="#{testCodeList.previousFirstResult}"/> | </a:commandButton> | <a:commandButton value="Next Page" reRender="testCodes" disabled="#{!testCodeList.nextExists}"> | <a:actionparam name="firstResult" value="#{testCodeList.nextFirstResult}"/> | </a:commandButton> | <a:commandButton value="Last Page" reRender="testCodes" disabled="#{!testCodeList.nextExists}"> | <a:actionparam name="firstResult" value="#{testCodeList.lastFirstResult}"/> | </a:commandButton> | | </h:form></div> | Paging Bean -------------- | @Name("testCodePaginatior") | public class TestCodePaginatior implements Serializable { | | @Logger | private Log log; | | @In("#{testCodeListQuery}") | private EntityQuery testCodeListQuery; | | @Out | private EntityQuery testCodeList; | | @RequestParameter("firstResult") | private Integer firstResult; | | @Factory("testCodeList") | public void init() { | this.testCodeList = testCodeListQuery; | int index = 0; | if(this.firstResult != null){ | index = firstResult; | } | testCodeList.setFirstResult(index); | log.debug("paging '#0' with firstResult = '#1'",this.testCodeList, this.firstResult); | } | } | working example, but conversation scope Paging Bean -------------- | @Name("testCodePaginatior") | public class TestCodePaginatior implements Serializable { | | @Logger | private Log log; | | @In("#{testCodeListQuery}") | private EntityQuery testCodeListQuery; | | @In(required=false)@Out(scope=ScopeType.CONVERSATION) | private EntityQuery testCodeList; | | @RequestParameter("firstResult") | private Integer firstResult; | | public void page(){ | log.debug("paging '#0' with firstResult = '#1'",this.testCodeList, this.firstResult); | int index = 0; | if(this.firstResult != null){ | index = firstResult; | } | testCodeList.setFirstResult(index); | testCodeList.refresh(); | } | | @Factory("testCodeList") | public void init() { | this.testCodeList = testCodeListQuery; | int index = 0; | if(this.firstResult != null){ | index = firstResult; | } | testCodeList.setFirstResult(index); | log.debug("initing '#0' with firstResult = '#1'",this.testCodeList, this.firstResult); | } | view.xhtml ------------- | <div id="register"><h:form id="testCodes" | styleClass="register"> | <h:dataTable id="codeList" var="code" value="#{testCodeList.resultList}"> | <h:column> | <f:facet name="header"> | <h:outputText value="Code" /> | </f:facet> | <h:outputText value="#{code.name}"/> | </h:column> | <h:column> | <f:facet name="header"> | <h:outputText value="Desc" /> | </f:facet> | <h:outputText value="#{code.desc}"/> | </h:column> | </h:dataTable> | | <a:commandButton value="First Page" action="#{testCodePaginatior.page}" reRender="testCodes" disabled="#{!testCodeList.previousExists}"> | <a:actionparam name="firstResult" value="0"/> | </a:commandButton> | <a:commandButton value="Previous Page" action="#{testCodePaginatior.page}" reRender="testCodes" disabled="#{!testCodeList.previousExists}"> | <a:actionparam name="firstResult" value="#{testCodeList.previousFirstResult}"/> | </a:commandButton> | <a:commandButton value="Next Page" action="#{testCodePaginatior.page}" reRender="testCodes" disabled="#{!testCodeList.nextExists}"> | <a:actionparam name="firstResult" value="#{testCodeList.nextFirstResult}"/> | </a:commandButton> | <a:commandButton value="Last Page" action="#{testCodePaginatior.page}" reRender="testCodes" disabled="#{!testCodeList.nextExists}"> | <a:actionparam name="firstResult" value="#{testCodeList.lastFirstResult}"/> | </a:commandButton> | | </h:form></div> | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4019024#4019024 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4019024 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user