Bonjour,

J'ai un petit soucis sur une requête JPQL:
Voici vite fait l'architecture des entités.

Agence
(n)
l
l
l
(1)
Materiel (n) ---------- (1) LienMaterielPoste
(1)
l
l
l
(n)
ModelMateriel

En gros, un materiel a:
- un modele (@ManyToOne)
- une agence (@ManyToOne)
- un ensemble de liensMaterielPoste (@OneToMany)

Je voudrais récupérer les matériels d'une agence et d'un modèle spécifique mais également ajouter une condition sur l'ensemble des liens (date de retrait inférieure à la date du jour). En SQL pas de soucis, mais en JPQL je n'obtient pas le résultat voulu.

Voici ma méthode:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public List<Materiel> getAllMaterielsDispo(Agence a, ModeleMateriel m) {
       String jpql = "SELECT r FROM Materiel r " +
                     " join r.agence a" +
                     " join r.modele m " +
                     " join r.liensMaterielPoste liens " +
                     " where a.id=?1 and m.id=?2 and liens.dateRetrait<?3";
       Query query =              PersistanceUnit.getInstance().getEm().createQuery(jpql);
       query.setParameter(1, a.getId());
       query.setParameter(2, m.getId());
       query.setParameter(3, new java.util.Date());
       return query.getResultList();
    }
Merci de m'aider.