docs: @Override
  	public <G extends GlobalContext<?, ?>> G createGlobalContext(Class<? extends G> globalContextImplType,
  			final Class<? extends EntityContext<?, ?>> entityContextImplType, Class<? extends PropertyContext<?, ?>> propertyContextImplType) {
  
  		// ByteBuddyState#resolveClassLoadingStrategy static method is an Hibernate ORM internal,
  		// please remove its use here as soon the issue HHH-13014 has been closed.
  		// url https://hibernate.atlassian.net/browse/HHH-13014.
  		Class<? extends G> globalContextType = new ByteBuddy()
  				.subclass( globalContextImplType )
  				.method( filterEntityMethod() )
  				.intercept( to( new EntityOrPropertyMethodInterceptor( entityContextImplType, propertyContextImplType ) ) )
  				.make().load( globalContextImplType.getClassLoader(), resolveClassLoadingStrategy( globalContextImplType ) ).getLoaded();
  
  		try {
  			return globalContextType.getConstructor( ConfigurationContext.class ).newInstance( this );
  		}
  		catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
  			throw log.cannotCreateGlobalContextProxy( globalContextImplType, e );
  		}
  	}