Ho un'entità Utente. E quegli utenti possono essere amici insieme. Così ho definito un'associazione unidirezionale manyToMany autoreferenziale (perché c'è sempre reciprocità è amicizia, giusto?).manyToMany causa l'errore di immissione duplicata
un pezzo della mia entità utente in YML
manyToMany:
friendList:
targetEntity: User
joinTable:
name: user_friend
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
friend_id:
referencedColumnName: id
cascade: [persist]
Quando chiamo $user->addFriendList($friend)
, e dopo un persistere e un colore, ho PDOException
:
SQLSTATE [23000]: violazione del vincolo di integrità : 1062 Duplicate entry '1-2' per fey 'PRIMARY'
Quando controllo i log, posso vedere che la dottrina sta cercando di xectue la stessa query di inserimento due volte.
Per vostra informazione, la mia funzione addFriendList
public function addFriendList(User $friend)
{
if (!$this->friendList->contains($friend)) {
$this->friendList[] = $friend;
$friend->addFriendList($this);
}
}
dove sto male qui?