code: private List<Field> getAllFields() {
      List<Field> allFields = new ArrayList<>();
      Class<?> clazz = entityClass;
      boolean stop;
      do {
        List<Field> fields = IntrospectionUtils.getPersistableFields(clazz);
        allFields.addAll(fields);
        clazz = clazz.getSuperclass();
        stop = clazz == null || !clazz.isAnnotationPresent(MappedSuperClass.class);
      } while (!stop);
      return allFields;
    }
docs: Processes the entity class and any super classes that are MappedSupperClasses and returns the
  fields.
  
  @return all fields of the entity hierarchy.