Bonjour,
Est-il possible de faire une jointure entre une table et une association ayant une PK de type EmbeddedId ?
Voici le contexte :
L'association :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
@Entity
@Table(name = "formesur")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Formesur.findAll", query = "SELECT f FROM Formesur f")
    , ...)
public class Formesur implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected FormesurPK formesurPK;
   . . .
Sa clé primaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
@Embeddable
public class FormesurPK implements Serializable {
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_personnel")
    private int idPersonnel;
    @Basic(optional = false)
    @NotNull
    @Column(name = "id_module")
    private int idModule;
    . . .
La table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Entity
@Table(name = "module")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Module.findAll", query = "SELECT m FROM Module m")
    , . . .)
public class Module implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_module")
    private Integer idModule;
    . . .
La jointure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
        String req = "select m from Module m join Formesur fs on m.idModule = fs.FormesurPK.idModule";
        req += " where m.idFormation=:idFormation and fs.FormesurPK.idPersonnel=:idPersonnel";
        Query q = em.createQuery(req);
        q.setParameter("idFormation", idFormation);        
        q.setParameter("idPersonnel", idPersonnel);
        return (List<Module>)q.getResultList();
L'erreur :
Exception Description: Problem compiling [select m from Module m join Formesur fs on m.idModule = fs.FormesurPK.idModule where m.idFormation=:idFormation and fs.FormesurPK.idPersonnel=:idPersonnel]. The state field path 'fs.FormesurPK.idPersonnel' cannot be resolved to a valid type.

Si quelqu'un a idée, je serais bien preneur car je galère un peu ... beaucoup :-(
Merci d'avance.