рассмотрим эти две сущности:
/** @Entity */
class String {
/** @Id @Column(type="integer")
* @GeneratedValue
*/
public $id;
/** @Column(length=255) */
public $name;
/**
* @OneToMany(targetEntity="StringTranslation", mappedBy="owner") */
public $translations;
}
/** @Entity */
class StringTranslation {
/** @Id @Column(type="integer")
* @GeneratedValue
*/
public $id;
/* @ManyToOne(targetEntity="String", inversedBy="translations")
* @JoinColumn(name="foreignId", referencedColumnName="id") */
public $owner;
/** @Column(length=2) */
public $lang;
/** @Column(length=255) */
public $translation;
}
Когда я получаю запрос, используя
$query = qb()->select(array('s', 't'))
->from('String', 's')
->leftJoin('s.translations', 't')
->getQuery()
->getSQL();
Я получаю этот результат:
ВЫБРАТЬ s0_.id AS id0, s0_.name AS name1, s1_.id AS id2, s1_.foreign_id
AS foreign_id3, s1_.lang AS lang4, s1_.translation AS перевод5
FROM String s0_ LEFT JOIN
Почему левое соединение не генерируется?
Когда я пытаюсь получить результат запроса с помощью
$query = qb()->select(array('s', 't'))
->from('String', 's')
->leftJoin('s.translations', 't')
->getQuery()
->getArrayResult();
появляется эта ошибка:
Неустранимая ошибка: необработанное исключение 'PDOException' с сообщением
'SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064
ошибка в вашем синтаксисе SQL
Как решить эту проблему?