Bonjour,

J'ai 3 entities (Ecriture, Mouvement et Commentaire) qui sont liées comme suit :
  • Un mouvement contient plusieurs écritures (relation bidirectionnelle)
  • Un mouvement contient plusieurs commentaires (relation unidirectionnelle)


Je dois faire une requête sur les écritures, mais qui récupère également le mouvement et ses commentaires (qui sont en lazy).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
FROM Ecriture e JOIN FETCH e.mouvement m LEFT JOIN FETCH m.commentaires 
WHERE  m.dossier = :dossier AND m.journal.id IN (:idJournal1) 
ORDER BY m.annee, m.periode, m.chrono, e.ligne
Imaginons que la requête doivent me retourner 2 écritures faisant partie du même mouvement et ce mouvement n'a qu'un seul commentaire. Mon problème est que je récupère bien 2 écritures, 1 seul mouvement, mais mon commentaire a été dupliqué. Si c'était un mouvement à 5 écritures, j'aurais eu 5 fois le même commentaire.

Est-ce que quelqu'un sait où est l'erreur ?