Я понял ...
уникальные ограничения ожидают, что настоящее имя поля БД будет activityGroup_id
, а не просто activityGroup
.
Можно убедиться, что поле называетсяв БД, предоставляя JoinColumn.
Итак, умное решение:
/**
* @ORM\Entity
* @ORM\Table(name="activity",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="name_idx", columns={"activity_group_id", "name"}),
* @ORM\UniqueConstraint(name="sort_idx", columns={"activity_group_id", "sort_id"})
* }
* )
*/
class Activity
{
// ...
/**
* @ORM\ManyToOne(targetEntity="SeduceMe\SiteBundle\Entity\ActivityGroup", inversedBy="activities")
* @ORM\JoinColumn(name="activity_group_id", referencedColumnName="id")
*/
protected $activityGroup;
//...
}