title: How to notify changes to a row of p:dataTable which is currently being edited to a corresponding backing bean?
body: <p>How to know if contents of any column/s of the row being edited in a <code>&lt;p:dataTable&gt;</code> is changed? Given a simple example as follows.</p>
  
  <p>The data table : </p>
  
  <pre><code>&lt;p:dataTable var="brand" value="#{testManagedBean}"
               lazy="true" editable="true" rows="10"&gt;
  
      &lt;p:column headerText="Id"&gt;
          &lt;h:outputText value="#{brand.brandId}"/&gt;
      &lt;/p:column&gt;
  
      &lt;p:column headerText="Brand"&gt;
          &lt;p:cellEditor&gt;
              &lt;f:facet name="output"&gt;
                  &lt;h:outputText value="#{brand.brandName}"/&gt;
              &lt;/f:facet&gt;
              &lt;f:facet name="input"&gt;
                  &lt;p:inputText value="#{brand.brandName}"/&gt;
              &lt;/f:facet&gt;
          &lt;/p:cellEditor&gt;
      &lt;/p:column&gt;
  
      &lt;p:column headerText="Edit" width="50"&gt;
          &lt;p:rowEditor/&gt;
      &lt;/p:column&gt;
      &lt;p:ajax event="rowEdit" listener="#{testManagedBean.onRowEdit}"/&gt;
  &lt;/p:dataTable&gt;
  </code></pre>
  
  <p>The managed bean  :</p>
  
  <pre><code>@ManagedBean
  @ViewScoped
  public final class TestManagedBean extends LazyDataModel&lt;Brand&gt; implements Serializable
  {
      @EJB
      private final TestBeanLocal service=null;
      private static final long serialVersionUID = 1L;
  
      @Override
      public List&lt;Brand&gt; load(int first, int pageSize, String sortField, SortOrder sortOrder, Map&lt;String, Object&gt; filters) {
          setRowCount(3);  //Just an example. Actually fetched from the database.
          return service.getList(first, pageSize, sortField, sortOrder, filters);
      }
  
      public void onRowEdit(RowEditEvent event) {
          //Do something to check if the row currently being edited has been changed.
          //If something is changed then, invoke an EJB method to propagate changes to the database.
          //If nothing is changed then, get rid of invoking an expensive business service method to unnecessarily execute an update query.
  
          System.out.println("onRowEdit() called.");
      }
  }
  </code></pre>
  
  <p>Is there a way to invoke business service (to update database contents) if and only if the row currently being edited in the given <code>&lt;p:dataTable&gt;</code> is actually changed?</p>
  
  <p><sub>There could be more columns in <code>&lt;p:dataTable&gt;</code> as and when required as obvious.</sub></p>