Primefaces AJAX在db中创建15个查询

Primefaces AJAX在db中创建15个查询,primefaces,Primefaces,我有一个简单的数据表,在primefaces中进行单元格编辑。它可以工作,但是,首先,它不创建JavaScript消息,其次,它创建15个到db的相同查询。(我可以在hibernate控制台中看到) 代码是来自官方网站的令牌: <h:form id="form"> <p:growl id="messages" showDetail="true"/> <p:contextMenu for="clients" widgetVar="cMenu">

我有一个简单的数据表,在primefaces中进行单元格编辑。它可以工作,但是,首先,它不创建JavaScript消息,其次,它创建15个到db的相同查询。(我可以在hibernate控制台中看到) 代码是来自官方网站的令牌:

<h:form id="form">

    <p:growl id="messages" showDetail="true"/>

    <p:contextMenu for="clients" widgetVar="cMenu">
        <p:menuitem value="Edit Cell" icon="ui-icon-search" onclick="clientsTable.showCellEditor();return false;"/>
        <p:menuitem value="Hide Menu" icon="ui-icon-close" onclick="cMenu.hide()"/>
    </p:contextMenu>

    <p:dataTable id="clients" var="client" value="#{clientsBean.clients}" paginator="true" rows="5"
                 editable="true" editMode="cell" widgetVar="clientsTable">

        <p:ajax event="cellEdit" listener="#{clientsBean.onCellEdit}" update=":form:messages"/>

        <p:column headerText="Name" style="width:25%">
            <p:cellEditor>
                <f:facet name="output"><h:outputText value="#{client.name}"/></f:facet>
                <f:facet name="input"><p:inputText id="nameInput" value="#{client.name}"
                                                   style="width:96%"/></f:facet>
            </p:cellEditor>
        </p:column>

同时出现了新的奇怪错误:该bean中的oldValue和newValue总是相同的。

您的支持bean clientsBean是什么样子的?一个执行hibernate query getAll的方法GetClient。另一个是从primefaces复制的,在编辑的第一篇文章中。还有一个新的奇怪错误出现了:这个bean中的oldValue和newValue总是相同的。你的bean的可视范围是吗?
public void onCellEdit(CellEditEvent event) {  
    Object oldValue = event.getOldValue();  
    Object newValue = event.getNewValue();  

    if(newValue != null && !newValue.equals(oldValue)) {  
        FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Cell Changed", "Old: " + oldValue + ", New:" + newValue);  
        FacesContext.getCurrentInstance().addMessage(null, msg);  
    }  
}