/** * @return Genre[] */ public function getAllNonEmptyGenres() : array { $qb = $this->entityManager->createQueryBuilder(); $qb2 = $this->entityManager->createQueryBuilder(); $qb2->select('IDENTITY(song.genre)')->from(Song::getClassName(), 'song')->distinct(); $qb->select('genre')->from(Genre::getClassName(), 'genre')->where('genre.id IN (' . $qb2->getDQL() . ')'); return $qb->getQuery()->getResult(); }
public function getRandomSong(Genre $genre) : Song { $qb = $this->entityManager->createQueryBuilder(); $qb->select('song')->from(Song::getClassName(), 'song')->where('song.genre = :genre')->orderBy('RAND()')->setMaxResults(1)->setParameters(['genre' => $genre]); return $qb->getQuery()->getSingleResult(); }