/**
  * @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();
 }