code: private ResultMap buildResultMap(String id, Class<?> clazz, Configuration configuration) {
      // 判断是否已经存在缓存里
      if (configuration.hasResultMap(id)) {
        return configuration.getResultMap(id);
      }
      List<ResultMapping> resultMappings = Lists.newArrayList();
      Map<String, Field> columns = EntityUtil.getFields(clazz);
      for (Map.Entry<String, Field> column : columns.entrySet()) {
        Field field = column.getValue();
        String fieldName = field.getName();
        Class<?> columnTypeClass = resolveResultJavaType(clazz, fieldName, null);
        List<ResultFlag> flags = Lists.newArrayList();
        if (field.isAnnotationPresent(Id.class)) {
          flags.add(ResultFlag.ID);
        }
        String columnName = column.getKey();
        resultMappings.add(buildResultMapping(configuration, fieldName, columnName, columnTypeClass, flags));
      }
  
      // 构建ResultMap
      ResultMap.Builder resultMapBuilder = new ResultMap.Builder(configuration, id, clazz, resultMappings);
      ResultMap rm = resultMapBuilder.build();
      // 放到缓存中
      configuration.addResultMap(rm);
      return rm;
    }
docs: 构建ResultMap对象
  
  @param id
  @param clazz
  @param configuration
  @return