When you have to update multiple entities, retrieving them all from the database and iterating over ORM entities is known as a bad practice.
You should never do like:
<?php
$friend = $em->getReference('Octivi\Entity\User', $friendId);
$users = $this->findAll();
foreach ($users as $user) {
$user->setFriend($friend);
$em->persist($user);
}
$em->flush();
Instead, you should rely on the UPDATE query:
<?php
$qb->update('Octivi:User', 'u')
->set('u.friend', $friendId)
->getQuery()->execute();
Thanks to it, we only execute one SQL UPDATE statement instead of N-updates for each User entity.
Comments
Post a Comment