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 :
Elle est à priori correcte car j'arrive à récupérer sa traduction SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 delete Eta where codeEtablissement not in (select distinct id.codeEtablissement from EtaJry) and codeEtablissement not in (select distinct codeEtablissement from Mis)
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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_ ) )
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 :
J'ai bien essayé de déclarer des alias dans tous les sens notamment pour la table Eta mais ceux-ci sont ignorés.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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_ ) )
Là je sèche.
Partager