Problème conversion HQL vers SQL
Bonjour tout le monde ! ça faisait longtemps que je n'étais pas venu ici. A croire que je m'améliore en programmation. Enfin, non je suis de retour ici.
Voilà mon problème j'ai écrit la requête HQL suivante :
Code:
1 2 3
| delete Eta
where codeEtablissement not in (select distinct id.codeEtablissement from EtaJry)
and codeEtablissement not in (select distinct codeEtablissement from Mis) |
Elle est à priori correcte car j'arrive à récupérer sa traduction SQL :
Code:
1 2 3
| delete from IMAGIN.ETA where
( COD_ETA not in ( select distinct etajry1_.COD_ETA from IMAGIN.ETA_JRY etajry1_ ) )
and ( eta0_.COD_ETA not in ( select distinct mis2_.COD_ETA from IMAGIN.MIS mis2_ ) ) |
Or voilà le problème lors de la conversion SQL Hibernate me crée un alias eta0_ qui me rend une SQLGrammarException à l'exécution de la requête SQL car cet alias n'est pas défini dans la requête.
Le problème est le même en inversant les deux clauses du WHERE.
Par contre si on remplace le DELETE par un SELECT, plus de problème de conversion :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| select bla, bla, bla from
IMAGIN.ETA eta0_
where
(
eta0_.COD_ETA not in (
select
distinct etajry1_.COD_ETA
from
IMAGIN.ETA_JRY etajry1_
)
)
and (
eta0_.COD_ETA not in (
select
distinct mis2_.COD_ETA
from
IMAGIN.MIS mis2_
)
) |
J'ai bien essayé de déclarer des alias dans tous les sens notamment pour la table Eta mais ceux-ci sont ignorés.
Là je sèche.