perf: prevent N+1 on watchlist fetch

This commit is contained in:
vinceh121
2025-11-02 03:12:46 +01:00
parent a1aec6b463
commit 0739ef5ca9
4 changed files with 45 additions and 19 deletions

View File

@@ -2,6 +2,7 @@
namespace App\Repository;
use App\Entity\User;
use App\Entity\Watchlist;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
@@ -33,6 +34,24 @@ class WatchlistRepository extends ServiceEntityRepository
->getQuery()->execute();
}
/**
* @return Watchlist[]
*/
public function fetchWatchlistsForUser(User $user): array
{
return $this->createQueryBuilder('w')
->addSelect('d')
->addSelect('e')
->addSelect('p')
->leftJoin('w.domains', 'd')
->leftJoin('d.events', 'e')
->leftJoin('d.domainPurchases', 'p')
->where('w.user = :user')
->setParameter('user', $user)
->getQuery()
->getResult();
}
// /**
// * @return Watchlist[] Returns an array of Watchlist objects
// */