Bonjour,
je développe actuellement une application qui utilise Hibernate pour l'accès à la BDD. Les requêtes effectuées sont générées dynamiquement par l'application en fonction des choix de l'utilisateurs, cependant, lorsque l'application génére une requête avec un "OR" le navigateur charge indéfiniment et je n'obtiens pas le résultat de ma requête alors que lorsqu'il n'y a que des clauses AND tout se passe bien...
par exemple la requête suivante passe très bien :
alors que pour celle-ci je n'obtiens jamais le résultat (sans pour autant obtenir d'erreurs :s)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7SELECT personne.mail, pays.libelle FROM Personne personne, Pays pays, Langue langue WHERE langue.libelle LIKE '%chinois%' AND pays.id = personne.idPays AND langue.id = personne.idLangue AND langue.id = personne.idLangue;
De plus la requête Hibernate est bien générée. Cette requete est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT personne.mail, pays.libelle FROM Personne personne, Pays pays, Langue langue WHERE langue.libelle LIKE '%chinois%' OR langue.libelle LIKE '%russe%' AND pays.id = personne.idPays AND langue.id = personne.idLangue AND langue.id = personne.idLangue;
Y'a t-il une astuce pour placer une clause OR dans hibernate ou quelquechose que je fais mal?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Hibernate: select personne0_.MAIL as col_0_0_, pays1_.LIBELLE_PAYS as col_1_0_ from ANRQT_PERSONNE personne0_, ANRQT_PAYS pays1_, ANRQT_LANGUE langue2_ where langue2_.LIBELLE_LANGUE like '%chinois%' or (langue2_.LIBELLE_LANGUE like '%russe%') and pays1_.ID_PAYS=personne0_.ID_PAYS and langue2_.ID_LANGUE=personne0_.ID_LANGUE and langue2_.ID_LANGUE=personne0_.ID_LANGUE
merci d'avance
Partager