public static function autoLoadEntity($sEntity, array $aSql, $sPrefix = '', $bAddOnStdClass = false, $sEntityNamespace = null) 
	{
		if ($sEntity === '') { return; }

		if ($sEntityNamespace !== null) {
			
			self::setEntityNamespace($sEntityNamespace);
		}
			
		$sEntityName = self::$_sEntityNamespace.$sEntity;

		if (!class_exists($sEntityName)) { return; }

		$oEntityCall = new $sEntityName;
		$oReflectionClass = new \ReflectionClass($sEntityName);
		$oReflectionProperties = $oReflectionClass->getProperties();

		foreach ($oReflectionProperties as $aProperty) {

			if (preg_match('/@map ([a-zA-Z_]+)/', $aProperty->getDocComment(), $aMatch)) {

				$sEntitieRealName = $aMatch[1];
			}
			else {

				$sEntitieRealName = $aProperty->getName();
			}

			if (method_exists($oEntityCall, 'set_'.$aProperty->getName())) {

				if (isset($aSql[$sPrefix.$sEntitieRealName])) {

					$sMethodName = 'set_'.$aProperty->getName();
					$oEntityCall->$sMethodName($aSql[$sPrefix.$sEntitieRealName]);
				}
			}
		}

		if ($bAddOnStdClass === true) {

			foreach ($aSql as $sKey => $asField) {

				if (preg_match('/^\.[^.]+$/', $sKey)) {

					$sParameterName = str_replace('.', '', $sKey);
					$oEntityCall->$sParameterName = $aSql[$sKey];
				}
			}
		}

		return $oEntityCall;
	}