code: public static Pair<Field[], Field[]> filterKeyFields(Class clazz) {
          Field[] filtered = filterDeepFields(clazz);
          List<Field> keys = new ArrayList<>();
          List<Field> others = new ArrayList<>();
  
          for (Field field : filtered) {
              if (isKey(field.getAnnotation(DeepField.class))) {
                  keys.add(field);
              } else {
                  others.add(field);
              }
          }
  
          return Pair.create(keys.toArray(new Field[keys.size()]), others.toArray(new Field[others.size()]));
      }
docs: Return a pair of Field[] whose left element is
  the array of keys fields.
  The right element contains the array of all other non-key fields.
  
  @param clazz the Class object
  @return a pair object whose first element contains key fields, and whose second element contains all other columns.