diff --git a/lib/Doctrine/ORM/Query/QueryException.php b/lib/Doctrine/ORM/Query/QueryException.php index 8245722a9..b78e27bcf 100644 --- a/lib/Doctrine/ORM/Query/QueryException.php +++ b/lib/Doctrine/ORM/Query/QueryException.php @@ -19,6 +19,8 @@ namespace Doctrine\ORM\Query; +use Doctrine\ORM\Query\AST\PathExpression; + /** * Description of QueryException. * @@ -204,13 +206,15 @@ class QueryException extends \Doctrine\ORM\ORMException } /** + * @param PathExpression $pathExpr + * * @return QueryException */ - public static function associationPathInverseSideNotSupported() + public static function associationPathInverseSideNotSupported(PathExpression $pathExpr) { return new self( - "A single-valued association path expression to an inverse side is not supported". - " in DQL queries. Use an explicit join instead." + 'A single-valued association path expression to an inverse side is not supported in DQL queries. ' . + 'Instead of "' . $pathExpr->identificationVariable . '.' . $pathExpr->field . '" use an explicit join.' ); } diff --git a/lib/Doctrine/ORM/Query/SqlWalker.php b/lib/Doctrine/ORM/Query/SqlWalker.php index a4b5089e8..98f58ad8c 100644 --- a/lib/Doctrine/ORM/Query/SqlWalker.php +++ b/lib/Doctrine/ORM/Query/SqlWalker.php @@ -644,6 +644,7 @@ class SqlWalker implements TreeWalker { $sql = ''; + /* @var $pathExpr Query\AST\PathExpression */ switch ($pathExpr->type) { case AST\PathExpression::TYPE_STATE_FIELD: $fieldName = $pathExpr->field; @@ -671,7 +672,7 @@ class SqlWalker implements TreeWalker $assoc = $class->associationMappings[$fieldName]; if ( ! $assoc['isOwningSide']) { - throw QueryException::associationPathInverseSideNotSupported(); + throw QueryException::associationPathInverseSideNotSupported($pathExpr); } // COMPOSITE KEYS NOT (YET?) SUPPORTED