Bonjour,

Je suis face à un problème et je n'arrive pas à le résoudre, même après mes recherches.
Voici le code de mes Entity :
Cra :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class Cra  implements java.io.Serializable {
 
    private static final long serialVersionUID = -2993460541117479558L;
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
 
    @Column(name = "annee", nullable = false)
    private Integer annee;
 
    @Column(name = "numero", nullable = false)
    private Integer numero;
 
    @Column(name = "type", nullable = false)
    private Integer type;
 
    @ManyToMany
    @JoinTable(name = "FOLLO_PLA_CRA_ABSENCE",
    joinColumns = @JoinColumn(name = "cra_fk", referencedColumnName = "id"),
    inverseJoinColumns = @JoinColumn(name = "absence_fk", referencedColumnName = "id"))
    private Set<AbsenceTaken> absences;
 
    @ManyToMany
    @JoinTable(name = "FOLLO_PLA_CRA_WORKRECORDITEM",
    joinColumns = @JoinColumn(name = "cra_fk", referencedColumnName = "id"),
    inverseJoinColumns = @JoinColumn(name = "workrecorditem_fk", referencedColumnName = "id"))
    private Set<WorkRecordItem> wris;
 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="person_fk", nullable = false)
    private Person person;
 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="crastate_fk", nullable = false)
    private CraState craState;
 
...
WRI :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
public class WorkRecordItem implements java.io.Serializable {
 
    /**
     * 
     */
    private static final long serialVersionUID = -5429862855336162062L;
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
 
    @Temporal(TemporalType.DATE)
    @Column(name = "date", nullable = false)
    private java.util.Date date;
 
    @Column(name = "zone")
    private int zone;
 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="workrecord_fk", nullable = false)
    private WorkRecord workRecord;
 
...
WR :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class WorkRecord  implements java.io.Serializable {
 
    /**
     * 
     */
    private static final long serialVersionUID = -3591378471345489534L;
 
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
 
    @Temporal(TemporalType.DATE)
    @Column(name = "startDate", nullable = false)
    private java.util.Date startDate;
 
    @Temporal(TemporalType.DATE)
    @Column(name = "endDate", nullable = false)
    private java.util.Date endDate;
 
    @Column(name = "effort", nullable = false)
    private double effort;
 
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="assigment_fk", nullable = false)
    private Assigment assigment;
 
    @OneToMany(mappedBy="workRecord")
    private List<WorkRecordItem> WorkRecorItems;    
...
J'ai en fait besoin de faire un group by sur l'attribut id des WorkRecord mais je n'y parviens pas !

Voici ma requête initiale qui va chercher l'ensemble des WRI d'un cra :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT cra.wris  FROM Cra cra WHERE cra.id=:id
J'aimerai à présent groupé mes résultats (les wris) par leur clé étrangere (correspondant à l'objet workRecord)

J'ai donc établi cette requête (qui me renvoi une erreur donc) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
SELECT cra.wris AS wr, wr.workRecord.id  FROM Cra cra WHERE cra.id=:id GROUP BY wr.workRecord.id
Voilà, merci d'avance pour votre aide car j'avoue que je ne vois pas du tout.