Bonjour,
Dans la BDD, j'ai la structure en héritage corespondant à ce MCD :
Etudiant -(1,1)----Etre----0,1- Candidat -(1,1)----Etre----0,1- Utilisateur -(1,1)----Etre----0,1- Personne

L'identifiant de la personne est aussi celui de l'utilisateur / candidat / étudiant.

En SQL, je pourrais ainsi faire une jointure directe entre Etudiant et Personne. Mais dans le mapping généré par Seam Generate Entities, Etudiant n'est relié qu'à Candidat, qui lui même n'est relié qu'à Utilisateur, qui lui même n'est relié qu'à Personne.

J'ai vu ailleurs qu'en HQL, join n'est pas accompagné de on puisqu'il semble que Hibernate se débrouille tout seul pour trouver les conditions de jointures.

Comment alors puis-je faire une jointure directe entre Personne et Etudiant ?

Voici la requête actuelle :
Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
            Query query = entityManager.createQuery("from ThEtudiantEtu e "
                    + "join TePersonnePrs p "
                    + "where p.prsNom = :nom "
                    + "and p.prsPrenom = :prenom " 
                    + "and e.etuDateNaissance = :dateNaissance ");
Elle donne cette erreur :
javax.servlet.ServletException: #{identification.identifier}: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Path expected for join! [from org.domain.stamas.entity.ThEtudiantEtu e join TePersonnePrs p where p.prsNom = :nom and p.prsPrenom = :prenom and e.etuDateNaissance = :dateNaissance ]
Que me conseillez-vous ?