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:
Merci de m'aider.
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(); }
Partager