В Doctrine мне нужно создать класс, чтобы сделать соединение?

Я пытаюсь присоединиться к моему классу репозитория (Symfony 3 с Doctrine).

Вот как это выглядит:

public function findByRole($roles){ $qb = $this->createQueryBuilder('u') ->join('user_role', 'ur', Join::ON, 'ur.id = u.customerId'); $q = $qb->getQuery(); $users = $q->getArrayResult(); dump($users); } 

И у меня есть эта ошибка:

[Семантическая ошибка] строка 0, col 49 около 'user_role ur': Ошибка: Class 'user_role' не определен.

Определены два класса сущностей – Пользователь и Роль. Роль – это свойство пользователя (ManyToMany).

Существует также таблица соединения – user_role – мне нужно создать класс для каждой таблицы соединений, даже если мне это не нужно для моих собственных целей?

ps Я знаю, что эта ошибка может быть найдена в Stackoverflow, но у людей, имеющих эту проблему, могут быть разные проблемы.

Обновить:

Вот класс пользователя User (сокращенный):

 /** * @ORM\Table(name="user") * @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository") */ class User implements AdvancedUserInterface, \Serializable { /** * @ORM\Column(type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; //irrelevant code removed /** * * @ORM\ManyToMany(targetEntity="AppBundle\Entity\Role", cascade = {"persist"}, inversedBy="users") * @ORM\JoinTable(name="user_role", * joinColumns={@ORM\JoinColumn(name="user_id", * referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="role_id", * referencedColumnName="id")} * ) */ private $roles; ////////////////////////////////////////////////////////////////////// public function __construct() { $this->roles = new ArrayCollection(); } /** * Get id * * @return integer */ public function getId() { return $this->id; } //////////////////////////////// //roles /** * Add role * @param \AppBundle\Entity\Role $role * * @return User */ public function addRole(\AppBundle\Entity\Role $role) { $this->roles[] = $role; return $this; } public function setRoles(\AppBundle\Entity\Role $role){ $this->addRole($role); return $this; } /** * Remove role * @param \AppBundle\Entity\Role $role */ public function removeRole(\AppBundle\Entity\Role $role) { $this->roles->removeElement($role); } /** * I know it probably should return simply $this->roles, but the interface I'm implementing requires an array of strings... But everything works fine, except joining user+roles * @return \Doctrine\Common\Collections\Collection */ public function getRoles() { return $this->roles->toArray(); } /** * Get roles * @return \Doctrine\Common\Collections\Collection */ public function getRoleEntities() { return $this->roles; } }