code: private static EntityMetadata loadMetadata(Class<?> entityClass) {
      synchronized (entityClass) {
        EntityMetadata metadata = cache.get(entityClass);
        if (metadata == null) {
          EntityIntrospector introspector = new EntityIntrospector(entityClass);
          introspector.process();
          metadata = introspector.entityMetadata;
          cache.put(entityClass, metadata);
        }
        return metadata;
      }
    }
docs: Loads the metadata for the given class and puts it in the cache and returns it.
  
  @param entityClass
  the entity class
  @return the metadata for the given class