docs: public Object[] hydrate(
  			final Tuple resultset,
  			final Serializable id,
  			final Object object,
  			final Loadable rootLoadable,
  			//We probably don't need suffixedColumns, use column names instead
  		//final String[][] suffixedPropertyColumns,
  			final boolean allProperties,
  			final SharedSessionContractImplementor session) throws HibernateException {
  
  		if ( log.isTraceEnabled() ) {
  			log.trace( "Hydrating entity: " + MessageHelper.infoString( this, id, getFactory() ) );
  		}
  
  		final OgmEntityPersister rootPersister = (OgmEntityPersister) rootLoadable;
  
  
  		final boolean hasDeferred = rootPersister.hasSequentialSelect();
  		boolean sequentialSelectEmpty = false;
  		if ( hasDeferred ) {
  			//note: today we don't have sequential select in OGM
  			//check AbstractEntityPersister#hydrate for the detail
  		}
  
  		final String[] propNames = getPropertyNames();
  		final Type[] types = getPropertyTypes();
  		final Object[] values = new Object[types.length];
  		final boolean[] laziness = getPropertyLaziness();
  		final String[] propSubclassNames = getSubclassPropertySubclassNameClosure();
  		final boolean[] propertySelectable = getPropertySelectable();
  		for ( int i = 0; i < types.length; i++ ) {
  			values[i] = hydrateValue(
  					resultset,
  					session,
  					object,
  					i,
  					propertySelectable,
  					allProperties,
  					laziness,
  					hasDeferred,
  					rootPersister,
  					propNames,
  					propSubclassNames,
  					sequentialSelectEmpty );
  		}
  		return values;
  	}