1
0
mirror of synced 2025-02-02 21:41:45 +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;
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.'
);
}

View File

@ -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