Bonjour,
J'ai ce diagramme modèle:
J'essaye de récupérer Parameter avec sa Value (si présente) en fonction de GroupValue.
Voici ma requête en JPQL
Eclipse link me traduit la requête comme ceci:
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");
Comme les jointures internes sont remplacés, il ne peut excuté la clause de la jointure externe.
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)))
J'ai trouvé sur un forum ceci:
Par contre j'ai pas trouvé comment le corriger...For INNER joins EclipseLink will normally append the join condition to the WHERE clause, but this can be configured in the DatabasePlatform
Source
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
Partager