code: private void cacheMetadata(ResultSetMetaData resultSetMetaData) throws SQLException {
          cachedColumnNames = new LinkedHashMap<String, Integer>();
          for (int i = 1; i <= resultSetMetaData.getColumnCount(); i++) {
              final String fieldTypeName = resultSetMetaData.getColumnTypeName(i);
              if (!fieldTypeName.equalsIgnoreCase("geometry")
                      && isSupportedPropertyType(resultSetMetaData.getColumnType(i), fieldTypeName)) {
                  cachedColumnNames.put(resultSetMetaData.getColumnName(i).toUpperCase(), i);
                  columnCountProperties++;
              }
          }
      }
docs: Cache the column name and its index.
  
  @param resultSetMetaData
  @throws SQLException