Bonjour,

J'ai ce diagramme modèle:
Nom : DiagrammeModel.png
Affichages : 1217
Taille : 16,4 Ko


J'essaye de récupérer Parameter avec sa Value (si présente) en fonction de GroupValue.

Voici ma requête en JPQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
		Squery.append("SELECT p FROM parameter p")
			.append(" JOIN p.groupOwner g")
			.append(" JOIN g.values gv")
			.append(" LEFT JOIN p.values v ON (v.groupValue = gv) ")
			.append(" WHERE  gv = :grValue");
Eclipse link me traduit la requête comme ceci:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
SELECT t1.numero, t1.nom, t1.crs_groupePropri_num, 
FROM crs_parametres t1 
LEFT OUTER JOIN crs_valeurs t3 ON ((t3.crs_parametres_num = t1.numero) AND (t3.crs_groupesvaleurs_num = t2.numero)), crs_groupesvaleurs t2, crs_groupes t0 
WHERE ((? = t2.numero) AND ((t0.numero = t1.crs_groupePropri_num) AND (t2.crs_groupe_num = t0.numero)))
Comme les jointures internes sont remplacés, il ne peut excuté la clause de la jointure externe.


J'ai trouvé sur un forum ceci:
For INNER joins EclipseLink will normally append the join condition to the WHERE clause, but this can be configured in the DatabasePlatform
Source
Par contre j'ai pas trouvé comment le corriger...

Premièrement est-ce que de créer une requête JPQL est juste? (peut on le faire par annotation)

Sinon comment configurer pour que cela fonctionne?

Merci