title: Primefaces datatable using LazyDataModel not updating. Seems like load method is not getting called
body: <p>I'm using primefaces 4.0 datatable using a LazyDataModel. I'm also using the <code>&lt;p:rowEditor /&gt;</code> and when a row is edited and saved, my datatable data is not being updated. It seems that the LazyDataModel.load method is not called on an ajax update.</p>
  
  <p>Is there something I'm doing wrong or a workaround? Is this a known problem?</p>
  
  <p>LazyUserDataModel.java</p>
  
  <pre><code>public class LazyUserDataModel extends LazyDataModel&lt;User&gt; {
  
          private static final long serialVersionUID = -7759670987463023731L;
          private List&lt;User&gt; users;
          private Dao dao;
          private String username;
          private List&lt;String&gt; roles;
  
          public LazyUserDataModel(Dao dao, String username, List&lt;String&gt; roles) {
              this.dao = dao;
              this.username = username;
              this.roles = roles;
          }
  
          @Override  
          public List&lt;User&gt; load(int first, int pageSize, String sortField, SortOrder sortOrder, Map&lt;String,String&gt; filters) {  
  
              List&lt;User&gt; users = new ArrayList&lt;User&gt;();  
              users = dao.findAllUsers(username, roles, first, pageSize);
      ...
  </code></pre>
  
  <p>UserGroupBacking.java</p>
  
  <pre><code>...
      private LazyDataModel&lt;User&gt; users;
  
      @PostConstruct
          public void init() {
              this.ds = databaseBacking.getDs();
              if(isLoggedIn()) {
                  loadData();
              }
          }
  
      public void updateUsersGroups(RowEditEvent event) {
          // Save data to db (this part works fine)
          loadData();
      }
  
      private void loadData() {
              Dao dao = new Dao(ds);
              users = new LazyUserDataModel(dao, accessBacking.getUsername(), accessBacking.getRoles());
          }
      ...
  </code></pre>
  
  <p>.xhtml</p>
  
  <pre><code>&lt;p:tabView id="tabs"&gt;
  
      &lt;p:tab id="userTab" title="Users"&gt;
          &lt;h:form id="userForm"&gt;
  
              &lt;p:growl for="growl" severity="info" autoUpdate="true" showDetail="true" /&gt;
              &lt;p:messages id="userMessages" severity="error" showDetail="true" /&gt;
  
              &lt;p:dataTable var="user" value="#{userGroupBacking.users}" editable="true" id="userTable" paginator="true" rows="20"  
                      paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}" lazy="true"
                      filteredValue="#{userGroupBacking.filteredUsers}" &gt;
  
                  &lt;p:ajax event="rowEdit" listener="#{userGroupBacking.updateUsersGroups}" update=":tabs:userForm:userTable, :tabs:userForm:userMessages" /&gt; 
  
                  &lt;p:column headerText="User" filterBy="#{user.name}" filterMatchMode="contains"&gt;
                      &lt;h:outputText value="#{user.name}" /&gt;
                  &lt;/p:column&gt;
  
                  &lt;p:column headerText="Groups"&gt;
                      &lt;p:cellEditor&gt;
                          &lt;f:facet name="output"&gt;
                              &lt;ui:repeat var="group" value="#{user.groups}"&gt;
                                  &lt;h:outputText value="#{group.name}" /&gt;&lt;br /&gt;
                              &lt;/ui:repeat&gt;
                          &lt;/f:facet&gt;
                          &lt;f:facet name="input"&gt;
                              &lt;p:selectCheckboxMenu value="#{user.groupsAsString}" label="Groups" filter="true" filterText="Filter" filterMatchMode="contains"&gt;
                                  &lt;f:selectItems value="#{userGroupBacking.groupsAsSelectItems}" /&gt;
                              &lt;/p:selectCheckboxMenu&gt;
                          &lt;/f:facet&gt;
                      &lt;/p:cellEditor&gt;
                  &lt;/p:column&gt;
  ...
  </code></pre>