I have 2 entities with a many-to-many relation as this:
User
{
/**
* @var Group[]
*
* @ORM\ManyToMany(targetEntity="Group", inversedBy="users")
* @ORM\JoinTable(
* name="user_group",
* joinColumns={
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
* },
* inverseJoinColumns={
* @ORM\JoinColumn(name="group_id", referencedColumnName="id")
* }
* )
*/
protect $groups
}
Group
{
/**
* @var User[]
*
* @ORM\ManyToMany(targetEntity="User", mappedBy="groups")
*/
private $users;
}
This creates 3 tables on DB:
- user
- group
- user_group
Is possible to manipulate user_group in a DQL? I'm trying something like this:
SELECT *
FROM user u
WHERE EXISTS
(SELECT ug.user_id FROM user_group ug WHERE ug.user_id = u.id AND ug.group_id = 3)
This doesn't work since it should be written as Entities. I could run this with Native SQL but I wanted to be sure that there's no better solution for this