1
0
mirror of synced 2025-02-03 05:49:25 +03:00

Merge branch 'improvement/#6325-improve-dql-exception-message-for-single-valued-inverse-association-path'

Close #6325
This commit is contained in:
Marco Pivetta 2017-06-21 08:16:49 +02:00
commit 9b9128ae77
No known key found for this signature in database
GPG Key ID: 4167D3337FD9D629
2 changed files with 9 additions and 4 deletions

View File

@ -19,6 +19,8 @@
namespace Doctrine\ORM\Query; namespace Doctrine\ORM\Query;
use Doctrine\ORM\Query\AST\PathExpression;
/** /**
* Description of QueryException. * Description of QueryException.
* *
@ -204,13 +206,15 @@ class QueryException extends \Doctrine\ORM\ORMException
} }
/** /**
* @param PathExpression $pathExpr
*
* @return QueryException * @return QueryException
*/ */
public static function associationPathInverseSideNotSupported() public static function associationPathInverseSideNotSupported(PathExpression $pathExpr)
{ {
return new self( return new self(
"A single-valued association path expression to an inverse side is not supported". 'A single-valued association path expression to an inverse side is not supported in DQL queries. ' .
" in DQL queries. Use an explicit join instead." 'Instead of "' . $pathExpr->identificationVariable . '.' . $pathExpr->field . '" use an explicit join.'
); );
} }

View File

@ -644,6 +644,7 @@ class SqlWalker implements TreeWalker
{ {
$sql = ''; $sql = '';
/* @var $pathExpr Query\AST\PathExpression */
switch ($pathExpr->type) { switch ($pathExpr->type) {
case AST\PathExpression::TYPE_STATE_FIELD: case AST\PathExpression::TYPE_STATE_FIELD:
$fieldName = $pathExpr->field; $fieldName = $pathExpr->field;
@ -671,7 +672,7 @@ class SqlWalker implements TreeWalker
$assoc = $class->associationMappings[$fieldName]; $assoc = $class->associationMappings[$fieldName];
if ( ! $assoc['isOwningSide']) { if ( ! $assoc['isOwningSide']) {
throw QueryException::associationPathInverseSideNotSupported(); throw QueryException::associationPathInverseSideNotSupported($pathExpr);
} }
// COMPOSITE KEYS NOT (YET?) SUPPORTED // COMPOSITE KEYS NOT (YET?) SUPPORTED