J'ai à nouveau besoin de votre aide pour une requete plutot complexe.

J ai 3 tables :
- Quizz (id, libelle)
- Candidate (id, libelle)
- User (id, libelle)
toutes rattachees par une table
- QuizzCandidate (quizzId, canId, userId, score)
qui fait la jonction entre les id des trois autres.

Ainsi, un QuizzCandidate me permet de trouver quel "Candidate" a fait quel "Quizz" sous la responsabilite de quel "User".

Ainsi, de facon à alimenter un tableau recapitulatif, j'aimerais effectuer la requete SQL (simplifiee) suivante :

SELECT CAN.lastName, CAN.firstName, QCA.testDate, QCA.score, QCA.time, QUI.domain, USE.login
FROM Quizz QUI, Candidate CAN, QuizzCandidate QCA, User USE
WHERE QUI.id = QCA.quiId
ANDCAN.id = QCA.canId
AND USE.id = QCA.useId
mais voila ! Lorsque j'ai fait mon mapping et apres de tres nombreuses recherches, il m a fallu creer un DAO supplementaire qui se nomme :
QuizzCandidateId. (oui, y a pas d autres solutions vraiment efficaces pour les clefs multiples). Cela m a donc donné un modele :

- Quizz (id, libelle)
- Candidate (id, libelle)
- User (id, libelle)
et :
- QuizzCandidate (quizzCandidateId, score)
- QuizzCandidateId (quizzId, canId, userId)

De fait, je pensais que ma requete devait ressembler à :

SELECT CAN.lastName, CAN.firstName, QCA.testDate, QCA.score, QCA.time, QUI.domain, USE.login
FROM Quizz QUI, Candidate CAN, QuizzCandidateId QCI, QuizzCandidate QCA, User USE
WHERE QUI.id = QCI.quiId
ANDCAN.id = QCI.canId
AND USE.id = QCI.useId
Mais lorsque je fais ma requete :

List result = getHibernateTemplate().find(aQuery);
j'obtiens l'erreur :

org.hibernate.hql.ast.QuerySyntaxException - QuizzCandidateId is not mapped
Effectivemlent, il n'existe aucune table du nom de QuizzCandidateId sinon dans mon modele java ! Mais alors comment faire la liaison entre QuizzCandidate et mes autres tables si je ne peux pas passer par QuizzCandidateId ? J'ai beau chercher sur les forums comment reussir ce tour de passe passe, je trouve pas ^^

Voila voila, j espere avoir ete clair...