Доктрина 2 и "неизвестный столбец в" предложении ON "

В настоящее время я работаю в проекте, который использует Doctrine 2 с ZF. Все идет нормально. Однако у меня есть проблема, которая выглядит как ошибка.

Я написал следующий код в одном из моих репозиториев:

$dql = 'SELECT a, s.firstName, s.lastName FROM Model_Application a, Model_Mission m 
        JOIN a.student s WHERE a.mission = m.id AND m.company = :company';

$result = $this->getEntityManager()->createQuery($dql)
                                   ->setParameter('company', $company)
                                   ->getResult();

Был сгенерирован следующий SQL:

SELECT a0_.coverLetter AS coverLetter0, [... lot of useless things],
a0_.student_id AS student_id5, a0_.mission_id AS mission_id6
FROM Applications a0_, Missions m2_ INNER JOIN Students s3_
ON a0_.student_id = s3_.id LEFT JOIN Users u1_ ON s3_.id = u1_.id
WHERE a0_.mission_id = m2_.id AND m2_.company_id = ?

Однако я всегда получаю "Неизвестный столбец a0_.student_id в предложении ON", НО столбец student_id действительно существует в таблице Applications.

Я немного погуглил и нашел эту ссылку http://www.oscommerce-fr.info/faq/qa_info.php?qID=198 (извините, по-французски), в которой говорится, что после MySQL 5.0.12 парсер изменился и что Вы должны добавить круглые скобки, когда у вас есть несколько предложений FROM (это мой случай).

Если я переписываю код SQL, изменяя: FROM Applications a0_, Missions m2_

к:

FROM (Applications a0_, Missions m2_)

Оно работает! ОДНАКО я не знаю, как добавить эти скобки в код DQL (я пытался, но это не удается).

Так что, возможно, это ошибка, и Doctrine 2 должна вставлять круглые скобки всякий раз, когда у вас есть более одного предложения FROM, или, может быть, я ошибаюсь?

1 ответ

Окей, решите благодаря этой ссылке: http://www.doctrine-project.org/jira/browse/DDC-1047

Ключ должен изменить порядок DQL:

$dql = 'SELECT a, s FROM Model_Application a JOIN a.student s, Model_Mission m
        WHERE a.mission = m.id AND m.company = :company';
Другие вопросы по тегам