manyToMany вызывает ошибку дублирования записи

У меня есть объект "Пользователь". И эти пользователи могут дружить вместе.Итак, я определил однонаправленную ассоциацию со ссылкой на manyToMany (потому что всегда есть взаимность - это дружба, верно?).

часть моей пользовательской сущности в YML

manyToMany:
    friendList:
    targetEntity: User
    joinTable:
      name: user_friend
      joinColumns:
        user_id:
          referencedColumnName: id
      inverseJoinColumns:
        friend_id:
          referencedColumnName: id
    cascade: [persist]

Когда я вызываю $ user-> addFriendList ($ friend) , и после сохранения и сброса я получаю PDOException :

SQLSTATE [23000]: Нарушение ограничения целостности: 1062 Повторяющаяся запись «1-2» для фейри «PRIMARY»

Когда я проверяю журналы, я вижу, что доктрина пытается выполнить один и тот же запрос вставки дважды .

К вашему сведению, моя addFriendList функция

public function addFriendList(User $friend)
{
    if (!$this->friendList->contains($friend)) {
        $this->friendList[] = $friend;
        $friend->addFriendList($this);
    }
}

Где я ошибаюсь?

5
задан Reuven 14 December 2011 в 15:48
поделиться