protected static boolean hasChanged(Object[] oldRow,Object[] newRow,int[] indexColumns){
  for (  int c : indexColumns) {
    Object o=oldRow[c], n=newRow[c];
    if (o == null) {
      if (n != null) {
        return true;
      }
    }
 else     if (!o.equals(n)) {
      return true;
    }
  }
  return false;
}

protected static boolean hasChanged ( Object [ ] oldRow , Object [ ] newRow , int [ ] indexColumns ) { for ( int c : indexColumns ) { Object o = oldRow [ c ] , n = newRow [ c ] ; if ( o == null ) { if ( n != null ) { return true ; } } else if ( ! o . equals ( n ) ) { return true ; } } return false ; }
check if a the indexed columns of a row probably have changed . it may return true even if the change was minimal ( for example from 0 . 0 to 0 . 00 ) .
