Tengo una entidad de usuario. Y esos usuarios pueden ser amigos juntos. Así que definí una referencia a muchas asociaciones unidireccionales (porque siempre hay reciprocidad en la amistad, ¿no?).manyToMany causa error de entrada duplicada
un pedazo de mi entidad de usuario en YML
manyToMany:
friendList:
targetEntity: User
joinTable:
name: user_friend
joinColumns:
user_id:
referencedColumnName: id
inverseJoinColumns:
friend_id:
referencedColumnName: id
cascade: [persist]
Cuando llamo $user->addFriendList($friend)
, y después de una persistir y un rubor, tengo PDOException
:
SQLSTATE [23000]: Integridad violación de restricción : 1062 Entrada duplicada '1-2' para fey 'PRIMARY'
Cuando reviso los registros, puedo ver que la doctrina intenta e Ejecute la misma consulta de inserción dos veces.
Para su información, mi función addFriendList
public function addFriendList(User $friend)
{
if (!$this->friendList->contains($friend)) {
$this->friendList[] = $friend;
$friend->addFriendList($this);
}
}
¿Dónde estoy mal aquí?