Bonjour,
Je me casse la tête sur le problèmes suivant :
Mon entité Technicien possède une liste de Taches qu'il effectue.
Ces taches pouvant être nombreuse puisse qu'on en garde l'historique, le lien entre les 2 entité est déclaré lazy.
Je souhaite dans une requête obtenir tout mes techniciens et leur associer les taches qu'il ont effectuées le jour J.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Entity @Table(name="TECHNICIAN") public class Technician { @OneToMany(mappedBy="technician", fetch=FetchType.LAZY) private Set<Task> tasks = new HashSet<Task>(); ... }
J'écris donc :Le problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT DISTINCT tch FROM Technician tch LEFT JOIN FETCH tch.tasks tsk WITH tsk.scheduledStartDate >= :schedStart_begin AND tsk.scheduledStartDate <= :schedStart_end WHERE tch.partner=:partner
org.hibernate.hql.ast.QuerySyntaxException: with-clause not allowed on fetched associations; use filters
(A noter que sans le fetch, ma requête me renvoie le résultat attendu.)
Si je ne peux pas utiliser de clause "with" avec un "fetch", comment puis-je filtrer mes taches tout en récupérant tous mes techniciens ? (y compris ceux qui n'ont pas de tache pour ce jour là).
en espérant trouver un peu de lumière par ici
D'avance je vous remercie![]()
Partager