docs: <T> Method getPrimaryHashKeyGetter(Class<T> clazz) {
          Method hashKeyMethod;
          synchronized (primaryHashKeyGetterCache) {
              if ( !primaryHashKeyGetterCache.containsKey(clazz) ) {
                  for ( Method method : getRelevantGetters(clazz) ) {
                      if ( method.getParameterTypes().length == 0
                              && ReflectionUtils.getterOrFieldHasAnnotation(method, DynamoDBHashKey.class)) {
                          primaryHashKeyGetterCache.put(clazz, method);
                          break;
                      }
                  }
              }
              hashKeyMethod = primaryHashKeyGetterCache.get(clazz);
          }
  
          if ( hashKeyMethod == null ) {
              throw new DynamoDBMappingException("Public, zero-parameter hash key property must be annotated with "
                      + DynamoDBHashKey.class);
          }
          return hashKeyMethod;
      }