Bonjour,
Je souhaiterais un coup de main pour formuler une requête JPQL.
J'essaye de récupérer tous les films qui possède un thème précis. Un films peux avoir plusieurs thèmes et donc maintenant, je souhaiterais sélectionner tous les films qui on 2 thèmes précis mais je ne vois pas comment faire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public List<Film> tousLesFilmsParThemes1(int first, int max, Long theme) { List<Film> results = em.createQuery("SELECT distinct new Film(f.id, f.titre, f.alphabetique, f.cover, f.url) " + "FROM Film f LEFT JOIN f.themes t WHERE f.categorieFilm = 1 AND f.valide = true AND t.id = :theme ORDER BY f.id DESC") .setParameter("theme", theme) .setFirstResult(first) .setMaxResults(max) .getResultList(); return results; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public List<Film> tousLesFilmsParThemes2(int first, int max, Long theme1, Long theme2) { List<Film> results = em.createQuery("SELECT distinct new Film(f.id, f.titre, f.alphabetique, f.cover, f.url) " + "FROM Film f LEFT JOIN f.categorieFilm c LEFT JOIN f.themes t WHERE c.id = 1 AND f.valide = true AND t.id = :theme1 AND t.id = :theme2 ORDER BY f.id DESC") .setParameter("theme1", theme1) .setParameter("theme2", theme2) .setFirstResult(first) .setMaxResults(max) .getResultList(); return results; }
Partager