code: @SuppressWarnings("unused")
      protected static Class<?> findModelIdTypeByAnnotation(Class<?> modelType, Class<? extends Annotation> idAnnotation) {
          Class<?> curClass = modelType;
          while (Object.class != curClass && null != curClass) {
              for (Field f : curClass.getDeclaredFields()) {
                  if (f.isAnnotationPresent(idAnnotation)) {
                      return f.getType();
                  }
              }
              curClass = curClass.getSuperclass();
          }
          return null;
      }
docs: Utility method to find the ID type from Model type. Could be used by sub class on {@link #defaultDao(Class)}
  method implementation
  
  @param modelType the model type
  @param idAnnotation the ID annotation
  @return the ID type