Join fetch et clause "with"
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.
Code:
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>();
...
} |
Je souhaite dans une requête obtenir tout mes techniciens et leur associer les taches qu'il ont effectuées le jour J.
J'écris donc :
Code:
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 |
Le problème :
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 :roll:
D'avance je vous remercie :)